Do classes inheriting from automodel get propagated when using the sge_qsub parallel job? I can get a parallel run to work with automodel, but not with a new class including a cis-peptide restraint defined in special_restraints (which I can get to run in single proc mode).
I get the following error:
# Traceback (most recent call last): File "psamdc.py", line 77, in ? a.make() File "/home/namd/lib/modeller9v2/modlib/modeller/automodel/automodel.py", line 110, in make self.multiple_models(atmsel) File "/home/namd/lib/modeller9v2/modlib/modeller/automodel/automodel.py", line 214, in multiple_models self.parallel_multiple_models(atmsel) File "/home/namd/lib/modeller9v2/modlib/modeller/automodel/automodel.py", line 234, in parallel_multiple_models self.outputs.extend(job.run_all_tasks()) File "/home/namd/lib/modeller9v2/modlib/modeller/parallel/job.py", line 110, in run_all_tasks self.finish_next_task() File "/home/namd/lib/modeller9v2/modlib/modeller/parallel/job.py", line 127, in finish_next_task self.process_event(obj, s) File "/home/namd/lib/modeller9v2/modlib/modeller/parallel/job.py", line 141, in process_event task = obj.task_results() File "/home/namd/lib/modeller9v2/modlib/modeller/parallel/slave.py", line 54, in task_results r = self.get_data(allow_heartbeat=True) File "/home/namd/lib/modeller9v2/modlib/modeller/parallel/communicator.py", line 78, in get_data (cmdtype, obj) = self._recv() File "/home/namd/lib/modeller9v2/modlib/modeller/parallel/communicator.py", line 116, in _recv raise RemoteError(obj, self) modeller.parallel.communicator.RemoteError: AttributeError: 'module' object has no attribute 'cismodel' from <SGE qsub slave, ID 107.1>
Is there a convenient way around this?
Thanks in advance
Regards
Gordon Wells wrote: > Do classes inheriting from automodel get propagated when using the > sge_qsub parallel job? I can get a parallel run to work with automodel, > but not with a new class including a cis-peptide restraint defined in > special_restraints (which I can get to run in single proc mode).
My guess is that you've declared this subclass directly in your script, rather than in a separate module. The parallel job support uses the Python 'pickle' module to serialize objects, and that doesn't work for classes declared in the 'main' script. See http://salilab.org/modeller/9v2/manual/node380.html and examples/python/parallel-task.py.
Ben Webb, Modeller Caretaker
participants (2)
-
Gordon Wells
-
Modeller Caretaker