Я вычислительный биолог и пытаюсь запускать большие партии похожего кода с помощью одной команды, но моя реализация попала в кирпичную стену.
Я использую среду моделирования NEURON, который использует MinGW для своего Windows интерфейса, и именно здесь мое исследование показало, что у меня возникает проблема.
В настоящее время я использую командный файл для запуска всех этих похожих фрагментов кода, для итерации по " коллекция "подпапок:
@echo off
for /D %%a in ("%cd%\all_cells\cell_*.*") do cd "%%a\sim1\" & START neuron sim.hoc
Проблема возникает, когда у меня более 32 подпапок; дополнительные экземпляры не будут запущены и приведут к ошибке «Ошибка выделения консольного устройства: слишком много консолей».
Мои исследования показали, что это известная проблема с Cygwin / MinGW.
Тем не менее, работа вокруг этого вручную (при условии, что не более 32 папок «коллекции») занимает очень много времени, когда я имею дело с сотнями экземпляров (каждый относится к моделируемой ячейке, и я хочу собрать статистику по сотням из них), поэтому я пытаюсь найти решение.
Тем не менее, я ужасен в написании командных файлов (я ужасный программист, который привык к c языкам) и я могу ' не могу понять, как обойти это.
Было бы замечательно, если бы кто-нибудь мог помочь мне найти способ преодолеть ограничение 32 или, если это не удалось, помочь мне написать командный файл, который бы делал это:
- переберите до 32 папок - дождитесь завершения экземпляров - делайте это снова в течение следующих 32, пока я не достигну конца папки.
Я пытался использовать команду / wait, чтобы выполнять их по одному, но все равно открываются все 32. (И это не было бы идеально, поскольку я хотел бы использовать все 16 ядер, которые у меня есть.