code: private AllocatedSlice getSliceOfType(final JobID jobID, final InstanceType instanceType) {
  
  		AllocatedSlice slice = null;
  
  		// Try to match the instance type without slicing first
  		for (final ClusterInstance host : this.registeredHosts.values()) {
  			if (host.getType().equals(instanceType)) {
  				slice = host.createSlice(instanceType, jobID);
  				if (slice != null) {
  					break;
  				}
  			}
  		}
  
  		// Use slicing now if necessary
  		if (slice == null) {
  
  			for (final ClusterInstance host : this.registeredHosts.values()) {
  				slice = host.createSlice(instanceType, jobID);
  				if (slice != null) {
  					break;
  				}
  			}
  		}
  
  		return slice;
  	}
docs: Attempts to allocate a slice of the given type for the given job. The method first attempts to allocate this
  slice by finding a physical host which exactly matches the given instance type. If this attempt failed, it tries
  to allocate the slice by partitioning the resources of a more powerful host.
  
  @param jobID
  the ID of the job the slice shall be allocated for
  @param instanceType
  the instance type of the requested slice
  @return the allocated slice or <code>null</code> if no such slice could be allocated