Перебирать все файлы в каталоге одновременно

У меня есть цикл внутри цикла Внешний цикл просто проходит через каждый файл в каталоге и запускает внутренний цикл

Могу ли я выбрать несколько файлов и одновременно запустить внутренний цикл для этих файлов

Я использую 32-ядерный 100-Гбайт оперативный сервер. И в настоящее время я использую только 1% процессора, проходящего 1 на 1

Я хотел бы ускорить это, запустив несколько файлов одновременно, чтобы максимально эффективно использовать мой суперкомпьютер и сократить время.

1 ответ

Есть несколько вариантов распараллеливания сценария Matlab.

  1. если у вас есть лицензия для набора инструментов параллельных вычислений, вы можете заменить внешний цикл на parfor петля. Смотрите это.
  2. если у вас нет такой лицензии, вы можете использовать сторонний пакет Multicore. Вам нужно будет изменить свой код, чтобы написать код для мастера и раба. Смотрите это.
  3. если вы не хотите слишком много переосмысливать свой код, вы можете удалить внешний цикл и принять имя файла в качестве аргумента. Затем используйте GNU параллельно, чтобы запустить столько экземпляров сценария, сколько имеется процессоров на машинах, и продолжайте делать это до тех пор, пока не будут обработаны все файлы. Видеть это.
Другие вопросы по тегам