protected ComputerImpl(Computer2Space computer2Space, boolean useMultipleCores) throws RemoteException {
		super();
		this.computer2Space = computer2Space;
		this.runTime = Runtime.getRuntime();
		threads = new ArrayList<Thread>();
		
		if (useMultipleCores)
			noOfThreads = runTime.availableProcessors();
		else
			noOfThreads = 1;
		
		for (int i = 0; i < noOfThreads; i++) {
			threads.add(new ComputeThreadImpl(this.computer2Space, this));
		}
		
		System.out.println("Available cores: " + availableCores());
		System.out.println("Starting " + threads.size() + " threads");
		
		for (Thread thread : threads) {
			thread.start();
		}
	}