Создание параллельных задач
17.10.2023
Настали времена, когда ядер больше чем задач, ищу помощи или совета:
Есть ПК на 100 ядер, есть 10 начальных условий. Надо просчитать 10 раз задачу со случайными величинами для 10 начальных условий, чтобы все 100 ядер были задействованы и по одному разу.
Предполагаю, что как-то надо создать 10 задач/кластеров и распихать на parfor-ы.
P.s. создавать 100 н.у. не хочу, т.к. результаты неудобно сохранять
Ответы
На сколько я знаю, парфор это круто конечно, но самому вручную распихать - задача не простая. При этом если пользоваться арифметикой присущей матлабу (т.е. использовать матрицы, а не циклы и т.п.) то матлаб сам хорошо все распихает.
1. Была задача расчета несколько десятков тысяч раз посчитать систему д.у. Расчет несколько часов.
2. Ручное распихивание и парфор на 4 ядра уменьшили время до примерно полутра часов.
3.Переделал программ у с использованием везде где возможно матричных матлабовских вычислений. Скорость повысилась до нескольких минут.
Почитайте эту статью. Может поможет.