28 апр. 2014 г.

Оптимизация MatLab

Немного про то, как можно увеличить скорость работы программ в Matlab. Хотя Matlab автоматически регулирует размеры векторов и матриц, оказывается, что лучше будет предварительно выделить матрицы. Такое предварительное распределение берет на себя расходы на выделение памяти только один раз, и это гарантирует, что матричные элементы будут храниться в смежных ячейках оперативной памяти (по столбцам).
Рассмотрим следующий код:

clear all;
nx = 50000;
dx = 5;
for i = 1:nx
x(i) = (i-1)*dx;
y(i) = sin(3*x(i));
end

24 мар. 2014 г.

Установка LAMMPS под систему с GPU

Также как и в случае с Quantum Espresso LAMMPS был дописан для работы с CPU-GPU кластерами. Здесь я опишу краткую инструкцию по его установке на такие системы.
В принципе, установка мало чем отличается от процесса установки на обычный кластер, описанный тут, кроме собирание отдельной библиотеки GPU для LAMMPS.
Итак, качаем последнюю версию LAMMPS, заходим в разархивированную папка и идем в папку с библиотекой GPU:

cd lammps-24Apr13/lib/gpu

после чего редактируем в файле Makefile.linux строки:

Установка QE под систему с GPU

В настоящее время все более востребованными стали вычислительные кластеры, которые содержат в себе не только классические CPU, но и графические ускорители GPU, которые позволяют в разы увеличить производительность вычислительных кластеров. В связи с этим многим людям кажется привлекательным проводить расчеты на гибридных CPU-GPU системах. Для этих целей, разработчики программных пакетов пару лет назад начали переписывать/дописывать/улучшать коды своих программа для работы на GPU системах или гибридных CPU-GPU, что у них очень удачно получается на данный момент.
Однако суть вопроса в том, как установить такие пакеты на свой кластер с GPU. Здесь я опишу краткую инструкцию по установке Quantum Espresso на кластер с GPU, т.к. она немного отличается от тривиальной и очень простой установки этого пакета на CPU систему.