Я запускаю программу python, которая находит все простые числа. Возможно ли распределить всю мощность компьютера для этой единственной задачи. Используя все 4 ядра, которые имеет процессор?Назначить все полномочия компьютера Python
Спасибо!
p.s. Конечно, я использую Linux!
код я использую:
nextCheck = time.time() + 60
primesFound = 0
while 1:
if isPrime(toTest):
open("primeList.txt", "a").write(str(toTest)+"\n")
primesFound += 1
toTest += 2
if (toTest+1) % 1000 == 0:
if time.time() >= nextCheck:
print "Average speed: " + str(float(primesFound)/((time.time()-nextCheck)+60)) + "/s"
primesFound = 0
nextCheck = time.time() + 60
Вы используете потоки или многопроцессорную обработку? Вы не можете надеяться использовать несколько ядер, если используете однопоточное приложение. –
Вы имеете в виду примитивное обильное число? или простое число? В любом случае найти все из них невозможно (существует бесконечное количество обоих ...), даже если вы работаете на Linux. – jbat100
Вы можете запрограммировать свое приложение на C (которое довольно часто намного быстрее, чем Python для текущих реализаций), и вы должны рассмотреть многопоточность (то есть [pthreads] (https://computing.llnl.gov/tutorials/pthreads)) или многопроцессорной обработки, и, возможно, также используя GPGPU, например с [OpenCL] (http://en.wikipedia.org/wiki/Opencl) –