instalação de pacote dft · figura 8:biblioteca est atica. 10/42. estrutura de softwarehigh...

42
Estrutura de software High performance computing Octopus Resumo Referˆ encias Instala¸c˜ ao de pacote DFT abio Andrijauskas [email protected] Curso de ver˜ao 2015 - IFGW/Unicamp 1/42

Upload: others

Post on 10-Jul-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Instalação de pacote DFT · Figura 8:Biblioteca est atica. 10/42. Estrutura de softwareHigh performance computingOctopusResumoRefer^encias Figura 9:Biblioteca compartilhada. 11/42

Estrutura de software High performance computing Octopus Resumo Referencias

Instalacao de pacote DFT

Fabio [email protected]

Curso de verao 2015 - IFGW/Unicamp

1/42

Page 2: Instalação de pacote DFT · Figura 8:Biblioteca est atica. 10/42. Estrutura de softwareHigh performance computingOctopusResumoRefer^encias Figura 9:Biblioteca compartilhada. 11/42

Estrutura de software High performance computing Octopus Resumo Referencias

1 Estrutura de software

2 High performance computing

3 Octopus

4 Resumo

2/42

Page 3: Instalação de pacote DFT · Figura 8:Biblioteca est atica. 10/42. Estrutura de softwareHigh performance computingOctopusResumoRefer^encias Figura 9:Biblioteca compartilhada. 11/42

Estrutura de software High performance computing Octopus Resumo Referencias

Itens basicos

Figura 1: Elementos basicos de software em C e seus derivados.

3/42

Page 4: Instalação de pacote DFT · Figura 8:Biblioteca est atica. 10/42. Estrutura de softwareHigh performance computingOctopusResumoRefer^encias Figura 9:Biblioteca compartilhada. 11/42

Estrutura de software High performance computing Octopus Resumo Referencias

Figura 2: Elementos basicos de software em C e seus derivados.

4/42

Page 5: Instalação de pacote DFT · Figura 8:Biblioteca est atica. 10/42. Estrutura de softwareHigh performance computingOctopusResumoRefer^encias Figura 9:Biblioteca compartilhada. 11/42

Estrutura de software High performance computing Octopus Resumo Referencias

Figura 3: Elementos basicos de software em FORTRAN e seusderivados.

5/42

Page 6: Instalação de pacote DFT · Figura 8:Biblioteca est atica. 10/42. Estrutura de softwareHigh performance computingOctopusResumoRefer^encias Figura 9:Biblioteca compartilhada. 11/42

Estrutura de software High performance computing Octopus Resumo Referencias

Figura 4: Elementos basicos de software em FORTRAN e seusderivados.

6/42

Page 7: Instalação de pacote DFT · Figura 8:Biblioteca est atica. 10/42. Estrutura de softwareHigh performance computingOctopusResumoRefer^encias Figura 9:Biblioteca compartilhada. 11/42

Estrutura de software High performance computing Octopus Resumo Referencias

Figura 5: Processo de compilacao.

7/42

Page 8: Instalação de pacote DFT · Figura 8:Biblioteca est atica. 10/42. Estrutura de softwareHigh performance computingOctopusResumoRefer^encias Figura 9:Biblioteca compartilhada. 11/42

Estrutura de software High performance computing Octopus Resumo Referencias

Figura 6: Cenario completo.

8/42

Page 9: Instalação de pacote DFT · Figura 8:Biblioteca est atica. 10/42. Estrutura de softwareHigh performance computingOctopusResumoRefer^encias Figura 9:Biblioteca compartilhada. 11/42

Estrutura de software High performance computing Octopus Resumo Referencias

Bibliotecas

Figura 7: Tipos de biblioteca.

9/42

Page 10: Instalação de pacote DFT · Figura 8:Biblioteca est atica. 10/42. Estrutura de softwareHigh performance computingOctopusResumoRefer^encias Figura 9:Biblioteca compartilhada. 11/42

Estrutura de software High performance computing Octopus Resumo Referencias

Figura 8: Biblioteca estatica.

10/42

Page 11: Instalação de pacote DFT · Figura 8:Biblioteca est atica. 10/42. Estrutura de softwareHigh performance computingOctopusResumoRefer^encias Figura 9:Biblioteca compartilhada. 11/42

Estrutura de software High performance computing Octopus Resumo Referencias

Figura 9: Biblioteca compartilhada.

11/42

Page 12: Instalação de pacote DFT · Figura 8:Biblioteca est atica. 10/42. Estrutura de softwareHigh performance computingOctopusResumoRefer^encias Figura 9:Biblioteca compartilhada. 11/42

Estrutura de software High performance computing Octopus Resumo Referencias

HPC

O que e High-Performance Computing (HPC)[3, 5, 7]:

Diversos computadores de uso dedicado;

Processos paralelos;

Alta densidade de processadores e memoria;

Interconexao de alta velocidade;

12/42

Page 13: Instalação de pacote DFT · Figura 8:Biblioteca est atica. 10/42. Estrutura de softwareHigh performance computingOctopusResumoRefer^encias Figura 9:Biblioteca compartilhada. 11/42

Estrutura de software High performance computing Octopus Resumo Referencias

HPC

Existem limites para construir apenas um computadorgrande;

Dessa forma e necessario unir diversos computadorespara executar os processos;

Essa uniao de diversos computadores (nodes) pode serfeita de diversas formas;

13/42

Page 14: Instalação de pacote DFT · Figura 8:Biblioteca est atica. 10/42. Estrutura de softwareHigh performance computingOctopusResumoRefer^encias Figura 9:Biblioteca compartilhada. 11/42

Estrutura de software High performance computing Octopus Resumo Referencias

HPC

Processo: Representado por um executavel que esta nocomputador com espaco de memoria exclusivo;

Figura 10: (a) Multiplos processos em um processador. (b)Quatro processos executando em 4 cores (c) Apenas umnucleo

14/42

Page 15: Instalação de pacote DFT · Figura 8:Biblioteca est atica. 10/42. Estrutura de softwareHigh performance computingOctopusResumoRefer^encias Figura 9:Biblioteca compartilhada. 11/42

Estrutura de software High performance computing Octopus Resumo Referencias

HPC

Thread: Linha de execucao concorrente dentro doprocesso com memoria compartilhada;

Figura 11: (a) Processos com uma thread. (b) Um processo comtres threads.

15/42

Page 16: Instalação de pacote DFT · Figura 8:Biblioteca est atica. 10/42. Estrutura de softwareHigh performance computingOctopusResumoRefer^encias Figura 9:Biblioteca compartilhada. 11/42

Estrutura de software High performance computing Octopus Resumo Referencias

Memoria compartilhada

Figura 12: Sistema de memoria compartilhada [3]

16/42

Page 17: Instalação de pacote DFT · Figura 8:Biblioteca est atica. 10/42. Estrutura de softwareHigh performance computingOctopusResumoRefer^encias Figura 9:Biblioteca compartilhada. 11/42

Estrutura de software High performance computing Octopus Resumo Referencias

Memoria distribuıda

Figura 13: Sistema de memoria compartilhada [3]

17/42

Page 18: Instalação de pacote DFT · Figura 8:Biblioteca est atica. 10/42. Estrutura de softwareHigh performance computingOctopusResumoRefer^encias Figura 9:Biblioteca compartilhada. 11/42

Estrutura de software High performance computing Octopus Resumo Referencias

Sistema hıbrido

Figura 14: Sistema hıbrido [3]

18/42

Page 19: Instalação de pacote DFT · Figura 8:Biblioteca est atica. 10/42. Estrutura de softwareHigh performance computingOctopusResumoRefer^encias Figura 9:Biblioteca compartilhada. 11/42

Estrutura de software High performance computing Octopus Resumo Referencias

Sistema heterogeneo

Figura 15: Sistema heterogeneo [3]

19/42

Page 20: Instalação de pacote DFT · Figura 8:Biblioteca est atica. 10/42. Estrutura de softwareHigh performance computingOctopusResumoRefer^encias Figura 9:Biblioteca compartilhada. 11/42

Estrutura de software High performance computing Octopus Resumo Referencias

Sistema de filas

Para controlar a utilizacao dos nodes torna-senecessario o sistema de filas;

Diversas filas para cada cluster sao feitas limitando ouso de nodes e cores;

Dessa foram todos tem a chance de utilizar asmaquinas.

20/42

Page 21: Instalação de pacote DFT · Figura 8:Biblioteca est atica. 10/42. Estrutura de softwareHigh performance computingOctopusResumoRefer^encias Figura 9:Biblioteca compartilhada. 11/42

Estrutura de software High performance computing Octopus Resumo Referencias

Sistema de filas

#!/bin/csh

#PBS -m abe ### envia email no enfileiramento, no inıcio e no final do processo

#PBS -N par32a ### Nome do processo

#PBS -e par32a.err ### Arquivo de saıda de erro

#PBS -o par32a.out ### Arquivo de saıda padrao

#PBS -q par32 ### Inserir o processo da fila par32

#PBS -l nodes=2:ppn=4 ### Requisitando 2 nodes e 4 processos

cd diretorio-aonde-esta-o-comando-executavel

mpirun -n 8 ./comando-executavel ### executa com 8 processos

21/42

Page 22: Instalação de pacote DFT · Figura 8:Biblioteca est atica. 10/42. Estrutura de softwareHigh performance computingOctopusResumoRefer^encias Figura 9:Biblioteca compartilhada. 11/42

Estrutura de software High performance computing Octopus Resumo Referencias

Octopus

Octopus e um pacote que utiliza pseudo-potenciais,destinado a simulacao da dinamica de eletron-ıon emsistemas finitos tridimensionais sujeitos a camposeletromagneticos dependentes do tempo;

22/42

Page 23: Instalação de pacote DFT · Figura 8:Biblioteca est atica. 10/42. Estrutura de softwareHigh performance computingOctopusResumoRefer^encias Figura 9:Biblioteca compartilhada. 11/42

Estrutura de software High performance computing Octopus Resumo Referencias

1 CalculationMode = gs % fazer a simulacao a

partir do groundstate

2 Units = eV_Angstrom % unidades utilizadas

34 Radius = 3.5 % tamanho da caixa de simulacao

5 Spacing = 0.25 % cespaamento da malha

67 CH = 1.2 % constante

8 %Coordinates

9 "C" | 0 | 0 | 0

10 "H" | CH/sqrt (3) | CH/sqrt (3) | CH/sqrt (3)

11 "H" | -CH/sqrt (3) |-CH/sqrt (3) | CH/sqrt (3)

12 "H" | CH/sqrt (3) |-CH/sqrt (3) | -CH/sqrt (3)

13 "H" | -CH/sqrt (3) | CH/sqrt (3) | -CH/sqrt (3)

14 %

23/42

Page 24: Instalação de pacote DFT · Figura 8:Biblioteca est atica. 10/42. Estrutura de softwareHigh performance computingOctopusResumoRefer^encias Figura 9:Biblioteca compartilhada. 11/42

Estrutura de software High performance computing Octopus Resumo Referencias

Dicas antes de comecar:

Organizar e apontar todas as bibliotecas utilizadas;

Compilar tudo com a mesma serie de compiladores;

Manter documentacao de como foi feito;

Sempre fazer as verificacoes no final dos processos.

24/42

Page 25: Instalação de pacote DFT · Figura 8:Biblioteca est atica. 10/42. Estrutura de softwareHigh performance computingOctopusResumoRefer^encias Figura 9:Biblioteca compartilhada. 11/42

Estrutura de software High performance computing Octopus Resumo Referencias

Como instalar o Octopus ?

1 $ wget http://www.tddft.org/programs/octopus/

download /4.1.2

2 $ gzip -cd octopus -4.1.2. tar.gz

3 $ cd octopus -4.1.2

4 $ ./ configure

5 $ make

6 $ make install

25/42

Page 26: Instalação de pacote DFT · Figura 8:Biblioteca est atica. 10/42. Estrutura de softwareHigh performance computingOctopusResumoRefer^encias Figura 9:Biblioteca compartilhada. 11/42

Estrutura de software High performance computing Octopus Resumo Referencias

Base Ubuntu 14.04:

apt-get update; apt-get install build-essential vimwget gfortran-4.4 gcc-4.4 openmpi-bin libopenmpi-devautoconf

build-essential, vim wget autoconf - ferramentas paracompilacao;

openmpi - Implementacao do MPI que permite ossistemas hıbridos e distribuıdos;

gfortran e gcc - compiladores na versao 4.4.

26/42

Page 27: Instalação de pacote DFT · Figura 8:Biblioteca est atica. 10/42. Estrutura de softwareHigh performance computingOctopusResumoRefer^encias Figura 9:Biblioteca compartilhada. 11/42

Estrutura de software High performance computing Octopus Resumo Referencias

Bibliotecas necessarias:

BLAS - Biblioteca para algebra linear;

LAPACK - Biblioteca para algebra linear;

GSL - GNU Scientific Library ;

FFTW 3 - Transformada de Fourier;

LibXC - Exchange-correlation functionals fordensity-functional theory ;

pfft - Biblioteca paralelizada FFT;

export OMPI FC=gfortran-4.4;

export OMPI CC=gcc-4.4;

27/42

Page 28: Instalação de pacote DFT · Figura 8:Biblioteca est atica. 10/42. Estrutura de softwareHigh performance computingOctopusResumoRefer^encias Figura 9:Biblioteca compartilhada. 11/42

Estrutura de software High performance computing Octopus Resumo Referencias

BLAS

1 $ wget http://www.netlib.org/blas/blas.tgz

2 $ tar -xf blas.tgz

3 $ cd BLAS

4 $vim make.inc

5 FORTRAN = mpif90.openmpi

6 OPTS = -O3

7 DRVOPTS = $(OPTS)

8 NOOPT =

9 LOADER = mpif90.openmpi

10 LOADOPTS =

11 $make

12 $mkdir lib

13 $ cp blas_LINUX.a lib/liblas.a

14 /home/fabio/octopus/BLAS/lib/liblas.a

28/42

Page 29: Instalação de pacote DFT · Figura 8:Biblioteca est atica. 10/42. Estrutura de softwareHigh performance computingOctopusResumoRefer^encias Figura 9:Biblioteca compartilhada. 11/42

Estrutura de software High performance computing Octopus Resumo Referencias

LAPACK

1 $ wget http://www.netlib.org/lapack/lapack.tgz

2 $ tar -xf lapack.tgz

3 $ cd lapack -3.5.0

4 $ cp make.inc.example make.inc

5 $vim make.inc

6 FORTRAN = mpif90.openmpi

7 OPTS = -O2 -frecursive

8 DRVOPTS = $(OPTS)

9 NOOPT = -O0 -frecursive

10 LOADER = mpif90.openmpi

11 LOADOPTS =

12 $ make lib

13 $ cp liblapack.a lib/liblapack.a

14 /home/fabio/octopus/lapack/lapack -3.5.0/ lib/

liblapack.a

29/42

Page 30: Instalação de pacote DFT · Figura 8:Biblioteca est atica. 10/42. Estrutura de softwareHigh performance computingOctopusResumoRefer^encias Figura 9:Biblioteca compartilhada. 11/42

Estrutura de software High performance computing Octopus Resumo Referencias

GSL

1 $ wget ftp://ftp.gnu.org/gnu/gsl/gsl -1.16. tar.gz

2 $ tar -xf gsl -1.16. tar.gz

3 $ cd gsl -1.16

4 $ mkdir install

5 $ ./ configure CC="mpicc.openmpi" --prefix =/home/

fabio/octopus/gsl/gsl -1.16/ install --disable -

shared --enable -static

6 $ make

7 $ make install

8 /home/fabio/octopus/gsl/gsl -1.16/ install

30/42

Page 31: Instalação de pacote DFT · Figura 8:Biblioteca est atica. 10/42. Estrutura de softwareHigh performance computingOctopusResumoRefer^encias Figura 9:Biblioteca compartilhada. 11/42

Estrutura de software High performance computing Octopus Resumo Referencias

libxc

1 $ wget http://www.tddft.org/programs/octopus/

down.php?file=libxc/libxc -2.1.1. tar.gz

2 $ tar -xvzf libxc -2.1.0. tar.gz

3 $ cd libxc -2.1.0

4 $ mkdir install

5 $ ./ configure --prefix =/home/fabio/octopus/libxc

/libxc -2.1.1/ install CC="mpicc.openmpi"

CFLAGS="-O3 -lm" FC="mpif90.openmpi" FCFLAGS=

"-O3" --disable -shared

6 $ make

7 $ make install

8 /home/fabio/octopus/libxc/libxc -2.2.0/ install

31/42

Page 32: Instalação de pacote DFT · Figura 8:Biblioteca est atica. 10/42. Estrutura de softwareHigh performance computingOctopusResumoRefer^encias Figura 9:Biblioteca compartilhada. 11/42

Estrutura de software High performance computing Octopus Resumo Referencias

FFT e pfft

1 $ wget https://www -user.tu -chemnitz.de/~mpip/

software/install_fftw -3.3.4 _gcc.sh

2 $ chmod +x install_fftw -3.3.4 _gcc.sh

3 $ vim install_fftw -3.3.4 _gcc.sh

4 myprefix =/home/fabio/octopus/pfft/fftw/install

5 export OMPI_FC=gfortran -4.4

6 export OMPI_CC=gcc -4.4

7 OMPI_FC=gfortran -4.4

8 OMPI_CC=gcc -4.4

910 $ ./ install_fftw -3.3.4 _gcc.sh

32/42

Page 33: Instalação de pacote DFT · Figura 8:Biblioteca est atica. 10/42. Estrutura de softwareHigh performance computingOctopusResumoRefer^encias Figura 9:Biblioteca compartilhada. 11/42

Estrutura de software High performance computing Octopus Resumo Referencias

FFT e pfft

1 $ wget https://www -user.tu -chemnitz.de/~mpip/

software/pfft -1.0.8 - alpha.tar.gz

2 $ tar -xf pfft -1.0.8 - alpha.tar.gz

3 $ cd pfft -1.0.8 - alpha

4 ./ configure --prefix =/home/fabio/octopus/pfft/

pfft -1.0.8 - alpha/install --with -fftw3=/home/

fabio/octopus/pfft/fftw/install CC="mpicc.

openmpi" CFLAGS="-O3 -lm" FC="mpif90.openmpi"

FCFLAGS="-O3" F77=mpif90.openmpi MPICC=

mpicc.openmpi

5 $ make

6 $ make install

33/42

Page 34: Instalação de pacote DFT · Figura 8:Biblioteca est atica. 10/42. Estrutura de softwareHigh performance computingOctopusResumoRefer^encias Figura 9:Biblioteca compartilhada. 11/42

Estrutura de software High performance computing Octopus Resumo Referencias

octopus

1 $ wget http://www.tddft.org/programs/octopus/

down.php?file =4.1.2/ octopus -4.1.2. tar.gz

2 $ mkdir octopus

3 $ tar -xf octopus -4.1.2. tar.gz

4 $ cd octopus/octopus -4.1.2

5 $ mkdir install

34/42

Page 35: Instalação de pacote DFT · Figura 8:Biblioteca est atica. 10/42. Estrutura de softwareHigh performance computingOctopusResumoRefer^encias Figura 9:Biblioteca compartilhada. 11/42

Estrutura de software High performance computing Octopus Resumo Referencias

octopus

1 CPP=/usr/bin/cpp -4.4 ./ configure --prefix =/home/

fabio/octopus/octopus/octopus -4.1.2/ install

CC="mpicc.openmpi"

23 CFLAGS="-O3 -lm"

45 FC="mpif90.openmpi"

67 FCFLAGS="-O3 -I /home/fabio/octopus/pfft/fftw/

install/include -L /home/fabio/octopus/pfft/

fftw/install/lib"

89 --with -gsl -prefix="/home/fabio/octopus/gsl/gsl

-1.16/ install"

1011 --with -libxc -prefix="/home/fabio/octopus/libxc/

libxc -2.1.1/ install"

35/42

Page 36: Instalação de pacote DFT · Figura 8:Biblioteca est atica. 10/42. Estrutura de softwareHigh performance computingOctopusResumoRefer^encias Figura 9:Biblioteca compartilhada. 11/42

Estrutura de software High performance computing Octopus Resumo Referencias

octopus

1 --with -fft -lib="/home/fabio/octopus/pfft/fftw/

install/lib/libfftw3.a"

2 --with -blas="/home/fabio/octopus/BLAS/lib/liblas

.a"

34 --with -lapack="/home/fabio/octopus/lapack/lapack

-3.5.0/ lib/liblapack.a"

56 --enable -mpi --with -pfft

78 --with -pfft -prefix =/home/fabio/octopus/pfft/pfft

-1.0.8 - alpha/install

36/42

Page 37: Instalação de pacote DFT · Figura 8:Biblioteca est atica. 10/42. Estrutura de softwareHigh performance computingOctopusResumoRefer^encias Figura 9:Biblioteca compartilhada. 11/42

Estrutura de software High performance computing Octopus Resumo Referencias

octopus

1 $ make

2 $ make check

3 $ make install

4 /home/fabio/octopus/octopus/octopus -4.1.2/

install

37/42

Page 38: Instalação de pacote DFT · Figura 8:Biblioteca est atica. 10/42. Estrutura de softwareHigh performance computingOctopusResumoRefer^encias Figura 9:Biblioteca compartilhada. 11/42

Estrutura de software High performance computing Octopus Resumo Referencias

Existem outras bibliotecas uteis e em alguns casosexperimentais:

opencl;blacs;scalapack.

38/42

Page 39: Instalação de pacote DFT · Figura 8:Biblioteca est atica. 10/42. Estrutura de softwareHigh performance computingOctopusResumoRefer^encias Figura 9:Biblioteca compartilhada. 11/42

Estrutura de software High performance computing Octopus Resumo Referencias

Resumo

Organizar e apontar todas as bibliotecas utilizadas;

Compilar tudo com a mesma serie de compiladores;

Manter documentacao de como foi feito;

39/42

Page 40: Instalação de pacote DFT · Figura 8:Biblioteca est atica. 10/42. Estrutura de softwareHigh performance computingOctopusResumoRefer^encias Figura 9:Biblioteca compartilhada. 11/42

Estrutura de software High performance computing Octopus Resumo Referencias

Resumo

Sempre fazer as verificacoes no final dos processos.

Deixar todas as definicoes o mais explicito possıvel;

Verificar o arquivo config.log, pois possui grandequantidade de informacoes;

40/42

Page 41: Instalação de pacote DFT · Figura 8:Biblioteca est atica. 10/42. Estrutura de softwareHigh performance computingOctopusResumoRefer^encias Figura 9:Biblioteca compartilhada. 11/42

Estrutura de software High performance computing Octopus Resumo Referencias

Referencias I

[1] A.V. Aho. Compilers: Principles, Techniques, & Tools.Addison-Wesley series in computer science.Pearson/Addison Wesley, 2007. isbn: 9780321486813.

[2] Xavier Andrade et al. “Time-dependentdensity-functional theory in massively parallelcomputer architectures: the octopus project”. Em:Journal of Physics: Condensed Matter 24.23 (2012),p. 233202. url: http://stacks.iop.org/0953-8984/24/i=23/a=233202.

[3] G. Hager e G. Wellein. Introduction to HighPerformance Computing for Scientists and Engineers.Chapman & Hall/CRC Computational Science. Taylor& Francis, 2010. isbn: 9781439811924.

41/42

Page 42: Instalação de pacote DFT · Figura 8:Biblioteca est atica. 10/42. Estrutura de softwareHigh performance computingOctopusResumoRefer^encias Figura 9:Biblioteca compartilhada. 11/42

Estrutura de software High performance computing Octopus Resumo Referencias

Referencias II

[4] M. Tim Jones. Anatomy of Linux dynamic libraries.2008. url:http://www.ibm.com/developerworks/library/l-

dynamic-libraries/.

[5] J.M. May. Parallel I/O for High PerformanceComputing. Morgan Kaufmann Publishers, 2001. isbn:9781558606647.

[6] octopus. url: http://www.tddft.org/.

[7] J. Sanders e E. Kandrot. CUDA by Example: AnIntroduction to General-Purpose GPU Programming.Pearson Education, 2010. isbn: 9780132180139.

42/42