Выполнение модели Abaqus в таверне
Я довольно новичок в Taverna и Abaqus, но я пытаюсь запустить модель Abaqus, используя "Инструмент" в Taverna удаленно на HPC. Это прекрасно работает, если у меня уже есть файл модели и входные данные на HPC, но мне нужен способ динамической загрузки файлов в Taverna (при попытке обобщенно обернуть модели Abaqus).
Я попытался добавить входной порт, который принимает список файлов, но я не знаю, как я могу скопировать его в "местоположение", которое я установил для инструмента. Может ли служба BeanShell быть ответом или я могу перебрать список файлов и скопировать их перед выполнением модели abaqus?
Спасибо
3 ответа
Когда вы говорите, что создали порт ввода, который принимает список файлов, я предполагаю, что вы имеете в виду ввод в сервис инструментов.
Предполагая, что входной порт называется my_file_list, при запуске службы инструментов он будет принимать список значений данных для порта my_file_list. Например, скажем, у него есть "привет", "привет" и "привет" - это три значения в списке.
В том месте, где запущена служба инструмента, он выполняется во временном каталоге - отдельном каталоге для каждого выполнения службы. Обычно это что-то вроде /tmp/usecase-2029778474741087696
Три файла будут созданы во временном каталоге; эти файлы содержат (в этом примере) три значения, которые служба инструментов получила через порт my_file_list. Файлы могут быть названы
- /tmp/usecase-2029778474741087696/tempfile.0.tmp, содержащий привет
- /tmp/usecase-2029778474741087696/tempfile.1.tmp, содержащий hi
- /tmp/usecase-2029778474741087696/tempfile.2.tmp, содержащий hola
Там также будет файл с именем my_input_list. Этот файл будет содержать
/tmp/usecase-2029778474741087696/tempfile.0.tmp
/tmp/usecase-2029778474741087696/tempfile.1.tmp
/tmp/usecase-2029778474741087696/tempfile.2.tmp
Сценарий вашей службы инструментов обычно читает строку my_input_list построчно и что-то делает с содержимым перечисленных файлов.
Я также видел несколько сценариев, которые "читируют" и выполняют итерации непосредственно по временному файлу *.tmp, но это было бы "плохо". Проблема с этим трюком заключается в том, что если вы хотите добавить второй список файлов в сервис инструментов, тогда файл my_input_list может содержать
/tmp/usecase7932018053449784034/tempfile.4.tmp
/tmp/usecase7932018053449784034/tempfile.5.tmp
/tmp/usecase7932018053449784034/tempfile.6.tmp
как другие временные файлы были использованы для другого порта списка файлов.
Надеюсь, это поможет
Спасибо за введение, ребята. Это было мое неправильное понимание того, как Таверна использует список файлов. Все файлы в списке копируются во временную "песочницу" и поэтому доступны для использования. Другой удобный способ - это заархивировать каталог и передать сжатые файлы во входной порт службы. Затем просто распакуйте файлы внутри команды. еще раз спасибо
Служба инструментов позволяет загружать файлы, но если вы используете HPC через узел отправки задания, вам нужно будет изменить инструмент командной строки, чтобы затем использовать команду промежуточного размещения файла задания для дальнейшей отправки файлов как части задания, Файлы будут доступны в текущем (временном) каталоге указанного скрипта инструмента.
Я бы попытался сделать это с помощью службы инструментов и не использовать бобовую оболочку - тогда вы можете упростить свой рабочий процесс.
Хорошо помнить, что вы можете написать несколько команд оболочки в поле.
Точно так же вы, вероятно, захотите получить обратно результаты, чтобы вы могли обрабатывать их дальше в рабочем процессе (если они не являются массивными - в этом случае вы должны просто вывести их удаленные имена файлов и отправить их снова к следующему заданию HPC)
Точные команды, используемые для подготовки и извлечения файлов, зависят от системы отправки заданий HPC. Какой вы используете?