распараллеливание для новичков

PooH

есть Ubuntu, есть программа fplo (fplo.de) есть 4х ядерный проц
вопрос, можно ли ускорить вычисления, сама прога вроде не умеет (сейчас расчет с ней занимают 1 ядро и длятся более 3х суток)

procenkotanya

в компиляторах есть автораспараллеливание, но оно пока не жжёт, и вряд ли сильно поможет
жаль, что у них на сайте вообще ничего про код нет, кроме цены — я бы посмотрел, может там можно не сильно вникая что-нибудь на openmp распараллелить

stm4836248

А чёваще, если виртуалкам по ядру выделить?

procenkotanya

я от нечего делать, пожалуй, напишу, как я бы подходил к ускорению программы в этом случае, ибо есть очень халявный способ. предполагается, что программа запущена и работает
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!

PooH

третий шаг не понятен :)

procenkotanya

можно будет воспользоваться помощью зала :)

PooH

попробую утащить кусочек кода

geja_03

А чего бы банальным gprof не воспользоваться?

procenkotanya

а смысл? использовать не проще, точность ниже, обязательно надо перекомпилировать программу, нельзя заценить профиль до завершения работы программы. ну и не факт, что ifort вообще его поддерживает

juliuzz

попробую утащить кусочек кода
судя по тому, что написано на сайте, прога уже распространяется в исходниках
ботай MPI

geja_03

Ну в целом ты прав) Правда, если рута нет, то все печально становится.

geja_03

судя по тому, что написано на сайте, прога уже распространяется в исходниках
ботай MPI
Для начала неплохо бы заботать, есть ли там вообще возможность что либо распараллелить. :D
Ну и openMP в плане ботанья быстрее будет и уже есть в компиляторе.

durka82

Как вариант - можно просто 4 задачи параллельно запускать - все должны примерно за то же время посчитаться.

spensnp

зачем этот проприетарне уг?
посмотри например на CP2K: http://cp2k.berlios.de/
Оставить комментарий
Имя или ник:
Комментарий: