Как я могу реализовать многопроцессорную функцию для моей функции. Я так пробовал, но не работал.многопроцессорная работа с функцией python
def steric_clashes_parallel(system):
rna_st = system[MolWithResID("G")].molecule()
for i in system.molNums():
peg_st = system[i].molecule()
if rna_st != peg_st:
print(peg_st)
for i in rna_st.atoms(AtomIdx()):
for j in peg_st.atoms(AtomIdx()):
# print(Vector.distance(i.evaluate().center(), j.evaluate().center()))
dist = Vector.distance(i.evaluate().center(), j.evaluate().center())
if dist<2:
return print("there is a steric clash")
return print("there is no steric clashes")
mix = PDB().read("clash_1.pdb")
system = System()
system.add(mix)
from multiprocessing import Pool
p = Pool(4)
p.map(steric_clashes_parallel,system)
У меня есть тысячи файлов pdb или системных файлов для проверки этой функции. Требуется 2 часа для одного файла на одном ядре без модуля многопроцессорности. Любое предложение было бы большой помощью.
Моя отслеживающий выглядит примерно так:
self.run()
File "/home/sajid/sire.app/bundled/lib/python3.3/threading.py", line 858,
in run self._target(*self._args, **self._kwargs)
File "/home/sajid/sire.app/bundled/lib/python3.3/multiprocessing/pool.py", line 351,
in _handle_tasks put(task)
File "/home/sajid/sire.app/bundled/lib/python3.3/multiprocessing/connection.py", line 206,
in send ForkingPickler(buf, pickle.HIGHEST_PROTOCOL).dump(obj)
RuntimeError: Pickling of "Sire.System._System.System" instances is not enabled
(boost.org/libs/python/doc/v2/pickle.html)
«Не работает» не хватает ... какую ошибку вы получили? Что такое 'PDB' и' System() '? Мы не все знакомы со стерическими столкновениями. – tdelaney
Извините, у меня не было достаточного фона для многопроцессорного модуля.при запуске скрипта я получил следующий вывод; –
self.run() Файл «/home/sajid/sire.app/bundled/lib/python3.3/threading.py», строка 858, в запуске self._target (* self._args, ** self. _kwargs) Файл «/home/sajid/sire.app/bundled/lib/python3.3/multiprocessing/pool.py», строка 351, в _handle_tasks put (задача) Файл «/home/sajid/sire.app /bundled/lib/python3.3/multiprocessing/connection.py ", строка 206, в сообщении ForkingPickler (buf, pickle.HIGHEST_PROTOCOL) .dump (obj) RuntimeError: Распыление экземпляров" Sire.System._System.System " (http://www.boost.org/libs/python/doc/v2/pickle.html) –