QuantumPlasmas-IST / TETHYS-Graphene-Hydrodynamic-Simulation

Hydrodynamic simulation of plasmons in graphene
MIT License
6 stars 0 forks source link

Running TETHYS remotly #51

Closed pcosme closed 3 years ago

pcosme commented 3 years ago

Since the code is a bit slow to run and that our personal laptops or PCs might not be the best tools to run it we shall investigate the option to run it on IST sigma cluster. As IST students in principle each of us ha access to the cluster.

Unfortunately it doesn't support cmake so, we'll need to write specific makefiles. I'm also not sure if it natively has HDF5 libraries (I suspect it doesn't) but I'll see if they can install them or if we just upload the sources

pcosme commented 3 years ago

(estou cansado pra inglês) Passei a tarde toda de volta de como é que havia de pôr a simulação a correr no cluster, não é propriamente directo. Temos que:

  1. Compilar o codigo fonte do hdf5 à mão na área pessoal de cada um de nós (usei a versão 1.8.20 que é também a que tenho no pc)
  2. Usar uma Makefile específica (fiz um templatezinho depois já partilho)
  3. Preferencialmente usar o screen para poder terminar o terminal e a ligação (cf. este micro tutorial )

Mais tarde farei uma análise do tempo que se ganha, se quiserem que eu explique melhor digam

pcosme commented 3 years ago

Makefile for remote compilation

CC = g++
CFLAGS = -Wall -Wextra -Wno-unused-parameter -O2 -I/afs/ist.utl.pt/users/1/2/ist163412/.local/hdf5/include
LIBS = -lm
H5LIBS = -L/afs/ist.utl.pt/users/1/2/ist163412/.local/hdf5/lib  -lhdf5 -lhdf5_hl_cpp -lhdf5_cpp -lhdf5_hl

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/afs/ist.utl.pt/users/1/2/ist163412/.local/hdf5/lib

SIMUL1DSRC = $(addprefix ./src/,TETHYS_1D_Main_v[0-9][0-9][0-9].cpp Tethys1DLib.cpp TethysMathLib.cpp TethysLib.cpp ElectricLib.cpp BoundaryLib.cpp) 
SIMUL1DOBJ = $(SIMUL1DSRC:.cpp = .o)

SIMUL2DSRC = $(addprefix ./src/,TETHYS_2D_Main_v[0-9][0-9][0-9].cpp Tethys2DLib.cpp TethysMathLib.cpp TethysLib.cpp ElectricLib.cpp BoundaryLib.cpp)
SIMUL2DOBJ = $(SIMUL2DSRC:.cpp = .o)

ELEC2DSRC = $(addprefix ./src/,TETHYS_2D_ElectronicAnalysis.cpp Tethys2DLib.cpp TethysMathLib.cpp TethysLib.cpp ElectricLib.cpp)
ELEC2DOBJ = $(ELEC2DSRC:.cpp = .o)

all:tethys1D \
    tethys2D \
    electric2D \

tethys1D: $(SIMUL1DOBJ)
    $(CC) $(CFLAGS) $(LIBS) -o TETHYS_1D $(SIMUL1DOBJ) $(H5LIBS)

tethys2D: $(SIMUL2DOBJ)
    $(CC) $(CFLAGS) $(LIBS) -o TETHYS_2D $(SIMUL2DOBJ) $(H5LIBS)

electric2D: $(ELEC2DOBJ)
    $(CC) $(CFLAGS) $(LIBS) -o TETHYS_ELEC_2D $(SIMUL2DOBJ) $(H5LIBS)

clean:
    rm -f *.o
pcosme commented 3 years ago

Então os atrasados mentais do ciist não só desinstalaram o que eu tinha instalado como cancelaram as simulações que eu tinha a correr e apagaram os outputs todos .... portanto não me parece que possamos contar com isto

pcosme commented 3 years ago

E a saga do ciist (ou dsi ou lá que é agora) continua ... Então aparentemente não querem as nossas simulações lá que são muito exigentes em termos computacionais (então não sei qual é o objectivo de ter um server mas pronto devo ser eu que sou lento)

Vou ver com o Hugo a possibilidade de montarmos nós um servidor no laboratório