распараллеливание для новичков
жаль, что у них на сайте вообще ничего про код нет, кроме цены — я бы посмотрел, может там можно не сильно вникая что-нибудь на openmp распараллелить
А чёваще, если виртуалкам по ядру выделить?
1. убеждаемся, что программа скомпилирована с отладочной информацией:
gdb /path/to/prg `pidof prg`
bt
list
q
y
если без, компилируем с ней (ключик -g в флагах компилятора перезапускаем, перепроверяем
2. ставим oprofile (я хз, поддерживается ли в убунте новомодный perf, да и oprofile'а тут хватит) и запускаем его:
oprofile --start (нужны права рута)
ждём сколько не жалко (10-100 секунд, например)
oprofile --dump
opreport -l | less
3. заценяем функции в топе, идём в исходники, читаем, думаем как бы ускорить, ?, PROFIT!
третий шаг не понятен
можно будет воспользоваться помощью зала
попробую утащить кусочек кода
А чего бы банальным gprof не воспользоваться?
а смысл? использовать не проще, точность ниже, обязательно надо перекомпилировать программу, нельзя заценить профиль до завершения работы программы. ну и не факт, что ifort вообще его поддерживает
попробую утащить кусочек кодасудя по тому, что написано на сайте, прога уже распространяется в исходниках
ботай MPI
Ну в целом ты прав) Правда, если рута нет, то все печально становится.
судя по тому, что написано на сайте, прога уже распространяется в исходникахДля начала неплохо бы заботать, есть ли там вообще возможность что либо распараллелить.
ботай MPI
Ну и openMP в плане ботанья быстрее будет и уже есть в компиляторе.
Как вариант - можно просто 4 задачи параллельно запускать - все должны примерно за то же время посчитаться.
посмотри например на CP2K: http://cp2k.berlios.de/
Оставить комментарий
PooH
есть Ubuntu, есть программа fplo (fplo.de) есть 4х ядерный процвопрос, можно ли ускорить вычисления, сама прога вроде не умеет (сейчас расчет с ней занимают 1 ядро и длятся более 3х суток)