Чтобы уменьшить время для моделирования от 15 дней до чего-то гораздо меньшего, я заглянул в GNU Parallel. Он выполняет эту работу, но вызывает некоторые ошибки, и я не могу найти объяснения.GNU Parallel и SIGSEGV/SIGABRT
Код:
parallel "./create_ffile.py -r {2} -s {1}; GENENMM -pdb file.pdb -fcust ffile.txt; DIAGSTD; FREQEN; RMSCOL" :::: arg1.txt arg2.txt
где GENENMM, DIAGSTD, FREQEN и RMSCOL являются Fortran коды и argfiles содержат переменные для создания ffile.txt, который подается в GENENMM.
Ошибки:
Program received signal SIGSEGV: Segmentation fault - invalid memory peference. Backtrace for this error: #0 aaaaaaaaaaaa #1 ..... etc
и
Program received signal SIGABRT: Process abort signal. Backtrace for this error: #0 aaaaaaaaaaaa #1 ..... etc
Обе ошибки следуют либо (core dumped) DIAGSTD
или (core dumped) RMSCOL
То, что я не могу понять, почему они появляются только для некоторые {1} - {2} комбинации и не все. Кроме того, обе ошибки иногда появляются вместе, иногда появляется только одна из них. Из того, что я читаю в Интернете, это то, что происходит с кодами fortran. Но почему это не происходит для всех файлов? Связано ли это с тем, что все они работают параллельно?
Спасибо за любую помощь/комментарии заранее! Marie
Спасибо! Это тот же самый вывод, к которому я пришел, размышляя об этом. Программы действительно создают файлы, которые используются последовательными программами. Другой способ может состоять в том, чтобы просто переименовать файлы с помощью аргументов, а затем явно передать их в следующую программу, используя это имя. – syna