Esempio n. 1
0
int Scheduler::registerMultiResource(std::vector<SerializableObject *> &objects) {
	if (objects.size() != getCoreCount())
		Log(EError, "registerMultiResource() : resource vector does not have the right size!");
	LockGuard lock(m_mutex);
	int resourceID = m_resourceCounter++;
	ResourceRecord *rec = new ResourceRecord(objects);
	m_resources[resourceID] = rec;
	for (size_t i=0; i<objects.size(); ++i)
		objects[i]->incRef();
#if defined(DEBUG_SCHED)
	Log(EDebug, "Registered multi resource %i: %s", resourceID, objects[0]->getClass()->getName().c_str());
#endif
	return resourceID;
}
MillerRabinParallelPrimes::MillerRabinParallelPrimes(unsigned long n, unsigned long numberOfBases) :
	BasePrime("MillerRabinParallelPrimes"),
	mIsValid(false),
	mCheckLimit(n),
    mNumberOfBases(/*numberOfBases*/3),
    mNumberOfThreads(getCoreCount()+1),
	mNumberOfPrimes(0)
{
	std::cout << "number of concurrent jobs: " << mNumberOfThreads << std::endl;
	std::cout << "checking against " << mNumberOfBases << " bases" << std::endl;

	// nothing to do yet?
	if (n > 2 && numberOfBases > 2)
	{
		mIsValid = true; // object created correctly
	}
}
Esempio n. 3
0
MillerRabin::MillerRabin(unsigned long n, unsigned long numberOfBases) :
	BasePrime("MillerRabin"),
	mIsValid(false),
	mCheckLimit(n),
	mNumberOfBases(numberOfBases),
	mTypeBitSize(sizeof(unsigned long)*8), // !!!!!!!!
	mNumberOfThreads(getCoreCount()+1),
    mNumberOfPrimes(1),     // test starts with 3, so count the prime 2 here
    mNumberOfPrimesMutex()
{
	std::cout << "check against " << mNumberOfBases << " bases" << std::endl;

	// nothing to do yet?
	if (n > 2 && numberOfBases > 2)
	{
		mIsValid = true; // object created correctly
	}
}