пятница, 22 июня 2012 г.

Креатив


Сей креатив связан с программкой TeamViewer, которая позволяет управлять компом с другого компа:) Очень удобная штуковина.
Однажды зайдя на свой рабочий компьютер через удаленный компьютер через свой рабочий используя TeamViewer я получил вот это:

Согласитесь, неплохо?)  Концептуально получилось :)

понедельник, 18 июня 2012 г.

Старое дело

Перечитывал свой блог и наткнулся на запись от четверг, 16 июня 2011 г., где описывалось мое дело, а именно написание программки по расчету жесткости материалов. 
С того времени много воды утекло, люди стали умнее (хочется надеяться на это), в том числе и я :) 
Много раз я переписывал ту, написанную мною программку, улучшал ее, оптимизировал затраты времени, чтобы можно было использовать ее для огроменных структур. И, наконец, совсем недавно, я закончил ее реализацию. 
Небольшое резюме по программе.
1) Был использован один способ расчета, сейчас их 4.
2) Расчет мог производиться только для ковалентных кристаллов, сейчас для любых.
3) Использование памяти ограничивалось матлабовским лимитом (от 500Мб до 1Гб), сейчас это зависит от свободного места на жестком диске
4) Программа состояла из 3х функций, сейчас их 15
5) Улучшен ввод данных, раньше необходимо было иметь 2 файла с входными данными, сейчас только один универсальный POSCAR файл
Так что я чего-то достиг с того времени :)

суббота, 9 июня 2012 г.

Установка VASP

Здесь будет описана установка VASP, как на ПК под 32-битной Linux Ubuntu, так и под 64-битной Linux CentOS.
Вначале нужно было поставить VASP на 12 ядерный ПК. т.к. на нем удобнее тестировать, ну и тоже нужно, чтобы был VASP под рукой.
Для установки VASP на машине с компиляторами Intel существует в папке makefile.linux_ifc_P4, в котором написано, что библиотеки BLAS лучше всего брать из GotoBLAS. Я скачал GotoBLAS2, но он у меня не хотел компилироваться из-за моей версии компилятора, но порывшись в интернете я нашел хороший совет, что можно заменить GotoBLAS на OpenBLAS, который не имеет таких проблем с компиляторами. Сделав это я получил 2 библиотеки libopenblas.so и libopenblas.so.0, которые необходимо включить в makefile.
Важное замечание, для 64-битной системы был установлен GotoBLAS2, поэтому вышеописанной проблемы не возникло.
Еще одна вещь. На многих форумах и википедии, в том числе, пишут, что нужно FFTW3, которая есть в пакете Intel MKL - $(MKLROOT)/interfaces/fftw3xf/ , однако его надо компилировать отдельно, что, если честно, у меня не получилось на 32-битном компе. На 64-битном также не получилось, потому что это большой кластер и администратор этого кластера на захотел этого делать.
Итак, чтобы поставить VASP на систему с компилятором Intel, нужно зайти в папку с библиотеками и переименовать makefile.linux_ifc_P4 в Makefile используя команду

cp makefile.linux_ifc_P4 Makefile

Затем нужно отредактировать полученный Makefile, написав


CPP     = mpiicc -E -P -C $*.F >$*.f
FC=mpiifort


В исходном файле используется компилятор ifc, который не подходит, если Вы хотите скомпилировать VASP для параллельной работы. Далее жмем make.
Если все собралось нормально, то переходим в папку vasp.*/ . Также переименовываем  makefile.linux_ifc_P4 в Makefile, и меняем


FC=mpiifort
...
BLAS=-L/opt/intel/mkl/lib/ia32 -lmkl_intel -lmkl_sequential -lmkl_core -lpthread


или для 64-битной


FC=mpiifort
...
BLAS=-L/opt/intel/mkl/lib/intel64 -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread



Комментируем строки


# LAPACK, simplest use vasp.5.lib/lapack_double
#LAPACK= ../vasp.5.lib/lapack_double.o


# use the mkl Intel lapack
#LAPACK= -lmkl_lapack

Затем для MPI

FC=mpiifort
FCL=$(FC)

Снимаем коммнты с 

CPP    = $(CPP_) -DMPI  -DHOST=\"LinuxIFC\" -DIFC \
     -DCACHE_SIZE=4000 -DPGF90 -Davoidalloc -DNGZhalf \
     -DMPI_BLOCK=8000 

и

Также нужно добавить

SCA=-L/opt/intel/mkl/lib/intel64 -lmkl_intel_lp64 -lmkl_blacs_intelmpi_lp64 -lmkl_scalapack_lp64  -lmkl_sequential -lmkl_core -lpthread


но, если этого не добавить, то ничего страшного, VASP соберется и будет хорошо работать

FFT3D   = fftmpi.o fftmpi_map.o fft3dfurth.o fft3dlib.o 

И после этого жмем make и получаем файл vasp :)

Очень полезная ссылка по этому делу
http://confluence.rcs.griffith.edu.au:8080/display/GHPC/VASP#VASP-VASPmpiintel