Comparativo: GPU X CPU

O computador Mach, bem como o cluster Feynman possuem GPUs, as quais em determinados casos podem acelerar em muito os processos, se comparado a submissão dos mesmos às CPUs.
Para ilustrar os fatos, foi realizado um teste de performance utilizando o software Lammps compilado com a biblioteca GPU, tendo como input o arquivo “in.lj”, que se encontra no diretório “/examples/accelerate/” do Lammps. No arquivo apenas foram alteradas as variáveis xx, yy e zz para 40 com o intuito de aumentar a quantidade de tempo do processamento.

# 3d Lennard-Jones melt

variable        x index 1
variable        y index 1
variable        z index 1
variable        t index 100

variable        xx equal 40*$x
variable        yy equal 40*$y
variable        zz equal 40*$z

units           lj
atom_style      atomic

lattice         fcc 0.8442
region          box block 0 ${xx} 0 ${yy} 0 ${zz}
create_box      1 box
create_atoms    1 box
mass            1 1.0

velocity        all create 1.44 87287 loop geom

pair_style      lj/cut 2.5
pair_coeff      1 1 1.0 1.0 2.5

neighbor        0.3 bin
neigh_modify    delay 0 every 20 check no

fix             1 all nve

thermo          100

run             $t


Especificações de Hardware: computador Mach

CPU: 01 Intel Xeon E5-2609 de 4 núcleos a 2.4 GHZ;
GPU: Nvidia Quadro K600 com 1GB de memória de vídeo e 192 CUDA cores

Especificações de Hardware: Cluster Feynman (node gn001)

CPU: 02 Intel Xeon E5620 de 4 núcleos a 2.4 GHZ;
GPU: Nvidia Tesla C2050 com 3GB de memória de vídeo e 448 CUDA cores

Instrução do Lammps executada (dentro do diretório “/src”)

Utilizando CPU: mpirun -np 1 ./lmp_gpu < ../examples/accelerate/in.lj
Utilizando GPU: mpirun -np 1 ./lmp_gpu -sf gpu < ../examples/accelerate/in.lj

Resultados:
Mach
CPU: 0m24.358s
GPU: 0m7.168s
O tempo de processamento em GPU foi 3,4 vezes mais rápido em comparação à CPU

Feynman
CPU: 0m27.432s
GPU: 0m6.007s
O tempo de processamento em GPU foi 4,5 vezes mais rápido em comparação à CPU