Прогнозирование параллельной производительности дифференциальной эволюции в Python - PullRequest
1 голос
/ 21 апреля 2020

Я студент инженерного факультета, прохожу стажировку по генетическим c алгоритмам. В последнее время я проводил много исследований по дифференциальной эволюции. С ответственным за мою стажировку мы решили протестировать дифференциальную эволюцию, используя scipy.optimize.differential_evolution () .

В документации упоминается, что параллелизм возможен, но мы не уверены, действительно ли он будет иметь большое значение. Вот почему мы решили выяснить, есть ли способ прогнозировать улучшение производительности. Я обнаружил, что такое может быть возможно при использовании закона Амдала . Моя проблема в том, что для того, чтобы использовать Закон Амдала, я должен знать, что «часть программы может быть распараллелена». Есть ли кто-нибудь, кто мог бы помочь мне найти эту часть? Или, возможно, предсказывает улучшение по-другому?

Заранее спасибо!

1 Ответ

0 голосов
/ 21 апреля 2020

Q : "... такая вещь могла бы быть возможной с использованием закона Амдала. (Часть SER v / s PAR) Или другим способом? "

Во-первых, узнайте больше подробностей о пересмотренном, по крайней мере, строгих издержек Закон Амдала ,
лучше строго по накладным & с учетом ресурсов переформулирование,
как накладные расходы и ресурсы ( un) доступность в эпоху атомарности работы (в эволюционные периоды) будет определять в вашем случае гораздо больше, чем наивысшие части SER / PAR.

Если вам необходимо увидеть эти эффект динамический и интерактивный, читайте также это , где первый график ссылается на интерактивную демонстрацию того, что происходит для выбираемых пользователем [SERIAL] и [PARALLEL] части вместе с выбором настройки и завершения + все связанные с SER / DES дополнительные издержки , которые могут go довольно дикими, если вы выберете go в workers = -1 или переполнение ОЗУ начнет оборачиваться катастрофой c.

enter image description here

...