Гипотетически говоря, если бы моя научная работа была направлена на разработку функций / модулей / подпрограмм (на рабочем столе), что мне нужно знать, чтобы включить ее в крупномасштабное моделирование, чтобыработать на суперкомпьютере (который может имитировать молекулы, жидкости, реакции и т. д.)?
Во-первых, вам необходимо понять проблему.Не все проблемы могут быть решены параллельно (и я использую термин параллельный в таком широком значении, какое только возможно).Итак, посмотрите, как теперь решается проблема.Может ли это быть решено другим способом быстрее?Можно ли его разделить на независимые части ... и так далее ...
Фортран - это язык, специализирующийся на научных вычислениях, и в последние годы наряду с развитием новых языковых возможностей такженекоторые очень интересные разработки с точки зрения возможностей, которые нацелены на этот «рынок».Термин «совместные массивы» может быть интересным для чтения.
Но сейчас я бы предложил сначала прочитать книгу типа Использование OpenMP - OpenMP - более простая модель, но книга (примеры изнутри) хорошо объясняет основы.Интерфейс парсинга сообщений (для друзей MPI :) - более крупная модель, одна из часто используемых.Ваш следующий шаг от OpenMP, вероятно, должен идти в этом направлении.Книги по программированию MPI не редкость.
Вы упомянули также библиотеки - да, некоторые из упомянутых вами широко используются.Другие также доступны.Человек, который не знает точно, в чем проблема производительности, должен ИМХО никогда не пытаться выполнить задачу переписывания библиотечных подпрограмм.
Также есть книги по параллельным алгоритмам, которые вы, возможно, захотите проверить.
Я думаю, что этот вопрос не зависит от языка, но, поскольку многие вычислительные пакеты для биомолекулярного моделирования, моделирования климата и т. Д. Написаны в какой-то версии Fortran, этот язык, вероятно, будет моей целью интереса (и яЯ довольно много программировал на Фортране 77).
Короче говоря, все сводится к пониманию проблемы, изучению проблемы производительности, повторному решению всей проблемы с другим подходом., повторяя несколько раз, и к тому времени вы уже будете знать, что делаете и где застряли.