libAtoms / QUIP

libAtoms/QUIP molecular dynamics framework: https://libatoms.github.io
347 stars 122 forks source link

Unknown key errors with openmp+openmpi #555

Open MES-physics opened 1 year ago

MES-physics commented 1 year ago

Hi, I'm trying MPI all over again with the alternate architecture openmp+openmpi, (because something changed with OneAPI and we couldn't get it fixed on our cluster), and I'm getting "key errors" with this one . Can you help please? It didn't take the key distance_2b either.

::::::::::::::
GAP20Turbo-486519.out
::::::::::::::
libAtoms::Hello World: 2023-02-21 11:15:53
libAtoms::Hello World: git version  https://github.com/libAtoms/QUIP.git,v0.9.12-14-gb55e89d55-dirty
libAtoms::Hello World: QUIP_ARCH    linux_x86_64_gfortran_openmpi+openmp
libAtoms::Hello World: compiled on  Feb 20 2023 at 22:53:50
libAtoms::Hello World: MPI parallelisation with 32 processes
libAtoms::Hello World: OpenMP parallelisation with 16 threads
libAtoms::Hello World: OMP_STACKSIZE=1G
libAtoms::Hello World: MPI run with the same seed on each process
libAtoms::Hello World: Random Seed = 1297703233
libAtoms::Hello World: global verbosity = 0

Calls to system_timer will do nothing by default

MPI hostnames :: amd083.orc.gmu.edu
MPI host refs :: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
MPI my_host  : 0
MPI hostname : amd083.orc.gmu.edu
param_read_line: unknown key sparse_file
::::::::::::::
GAP20Turbo-487319.out
::::::::::::::
libAtoms::Hello World: 2023-02-21 15:41:22
libAtoms::Hello World: git version  https://github.com/libAtoms/QUIP.git,v0.9.12-14-gb55e89d55-dirty
libAtoms::Hello World: QUIP_ARCH    linux_x86_64_gfortran_openmpi+openmp
libAtoms::Hello World: compiled on  Feb 20 2023 at 22:53:50
libAtoms::Hello World: MPI parallelisation with 32 processes
libAtoms::Hello World: OpenMP parallelisation with 16 threads
libAtoms::Hello World: OMP_STACKSIZE=1G
libAtoms::Hello World: MPI run with the same seed on each process
libAtoms::Hello World: Random Seed = 1807436033
libAtoms::Hello World: global verbosity = 0

Calls to system_timer will do nothing by default

MPI hostnames :: amd081.orc.gmu.edu
MPI host refs :: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
MPI my_host  : 0
MPI hostname : amd081.orc.gmu.edu
param_read_line: unknown key distance_Nb order

Here is my input gap_fit command:

gap_fit_mpi \
atoms_filename=Carbon_GAP_20_Training_Set.xyz \
at_file=Carbon_GAP_20_Training_Set.xyz \
gap= \
{distance_Nb \
order=2 \
add_species=F \
n_sparse=15 \
theta_uniform=1.0 \
sparse_method=FILE \
sparse_file=1.input \
covariance_type=ard_se \
cutoff=4.5 \
delta=2.0 \
: \
angle_Nb \
order=3 \
add_species=F \
n_sparse=200 \
theta_uniform=1.0 \
sparse_method=FILE \
sparse_file=2.input \
covariance_type=ard_se \
cutoff=2.5 \
delta=0.05 \
: \
soap_turbo \
add_species=F \
alpha_max={{10}} \
l_max=4 \
atom_sigma_r={{0.5}} \
atom_sigma_t={{0.5}} \
atom_sigma_r_scaling={{0}} \
atom_sigma_t_scaling={{0}} \
radial_enhancement=1 \
amplitude_scaling={{1}} \
rcut_hard=4.5 \
rcut_soft=4 \
species_Z={{6}} \
central_weight={{1.0 }} \
n_sparse=9000 \
delta={{0.2}} \
covariance_type=dot_product \
zeta=4 \
compress_mode=trivial \
sparse_method=FILE} \
sparse_file=3.input \
default_sigma={0.001 0.01 0.05 0.0} \
default_kernel_regularisation={0.001 0.01 0.05 0.0} \
energy_parameter_name=energy \
force_parameter_name=force \
virial_parameter_name=virial \
do_copy_at_file=F \
sparse_jitter=1.0e-8 \
sparsify_only_no_fit=F \
sparse_separate_file=T \
openmp_chunk_size=10000 \
gp_file=Carbon_GAP_20TurboMPI.xml \
core_ip_args={IP Glue} \
core_param_file=r6_innercut.xml \
config_type_sigma={Liquid:0.050:0.5:0.5:0.0: \
Liquid_Interface:0.050:0.5:0.5:0.0: \
Amorphous_Bulk:0.005:0.2:0.2:0.0: \
Amorphous_Surfaces:0.005:0.2:0.2:0.0: \
Surfaces:0.002:0.1:0.2:0.0: \
Dimer:0.002:0.1:0.2:0.0: \
Fullerenes:0.002:0.1:0.2:0.0: \
Defects:0.001:0.01:0.05:0.0: \
Crystalline_Bulk:0.001:0.01:0.05:0.0: \
Nanotubes:0.001:0.01:0.05:0.0: \
Graphite:0.001:0.01:0.05:0.0: \
Diamond:0.001:0.01:0.05:0.0: \
Graphene:0.001:0.01:0.05:0.0: \
Graphite_Layer_Sep:0.001:0.01:0.05:0.0: \
Single_Atom:0.0001:0.001:0.05:0.0} \
albapa commented 1 year ago

It's hard to say but I think something goes wrong in the line continuation characters. I suggest you switch to using the new config_file option. It is much easier to edit and there is no need to use \ at the end of the lines.

BTW, I am sure no angle_Nb descriptor exists.

MES-physics commented 1 year ago

I can't find anything about how to use the config_file?

MES-physics commented 1 year ago

I got rid of the distance_2b problem by changing the typo gap= \ to gap = \. But the sparse_file key error still persists. Question: Are the commands sparse_method=FILE \ sparse_file=1.input \ only valid with building QUIP/GAP with the OneAPI architecture? Isn't it supposed to be valid with openmp+openmpi too? Same input script didn't get this complaint from OneAPI but I can't use it anymore.

albapa commented 1 year ago

The parsing does not depend on any compiler or compiler option.

For the config_file option, just put all of your command line into a file (without the \) and run gap_fit config_file=your_config_file

MES-physics commented 1 year ago

Hi, OK now I set it up that way and I'm getting the same error unfortunately. Attached are the config_file and input .sh file.
[GAPturboConfigfile.txt] gap_fit_mpiTurbo.txt (https://github.com/libAtoms/QUIP/files/10816981/GAPturboConfigfile.txt)

libAtoms::Hello World: 2023-02-23 13:23:08
libAtoms::Hello World: git version  https://github.com/libAtoms/QUIP.git,v0.9.12-14-gb55e89d55-dirty
libAtoms::Hello World: QUIP_ARCH    linux_x86_64_gfortran_openmpi+openmp
libAtoms::Hello World: compiled on  Feb 20 2023 at 22:53:50
libAtoms::Hello World: MPI parallelisation with 32 processes
libAtoms::Hello World: OpenMP parallelisation with 16 threads
libAtoms::Hello World: OMP_STACKSIZE=1G
libAtoms::Hello World: MPI run with the same seed on each process
libAtoms::Hello World: Random Seed = 1542028897
libAtoms::Hello World: global verbosity = 0

Calls to system_timer will do nothing by default

MPI hostnames :: ...........edu
MPI host refs :: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
MPI my_host  : 0
MPI hostname : ................edu
param_read_line: unknown key sparse_file
albapa commented 1 year ago

Your sparse_file argument is in the wrong place. It must be within the {} belonging to the descriptor you're using.

MES-physics commented 1 year ago

Ooh! I see. I’ll try again.