Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FORTRAN Cannot match error when trying mpirun -np 1 ./*_sph files #6

Closed
fieldequation opened this issue Sep 30, 2024 · 2 comments
Closed

Comments

@fieldequation
Copy link

Greetings,
I just fresh installed StarSmasher on a Ubuntu 22.04 machine, and trying to follow instructions in Star-star fly-by calculation. I've encountered several errors and Makefile was modified as following, which runs step 1(a) Relaxing a n=1.5 polytrope perfectly:

# Note: This Makefile will output the executable to a "bin"
#       directory one level up. Make sure it exists.
#       Pau Amaro Seoane, 24 August 2024

# Choose your compiler: gfortran or ifort       
# gfortran
FC      = mpif90 -ffixed-line-length-132 -fallow-argument-mismatch
CXX     = mpicxx
LDFLAGS = -pie

# ifort 
#FC = mpif90 -132

LD = $(shell which mpif90)

MPIPATH  = /usr/lib/x86_64-linux-gnu/openmpi  # Updated OpenMPI installation path
NVCC     = $(shell which nvcc)
CUDAPATH = /usr/local/cuda-12.6

OLEVEL = -O4 #-g 
FFLAGS = $(OLEVEL) -fPIC -fPIE
CFLAGS = $(OLEVEL) -fPIC -fPIE
CXXFLAGS = $(OLEVEL) -fPIC -fPIE
NVCCFLAGS = -arch=sm_75 -O3 -Xcompiler -fPIE
GRAVLIB = SPHgrav_lib2 # use this one for the direct force
LIBS = -lm -lstdc++ -lgfortran -L$(GRAVLIB) -lSPHgrav -L/usr/local/cuda-12.6/lib64 -lcudart -lcudadevrt -lcudart_static -L/usr/lib/x86_64-linux-gnu/openmpi/lib -lmpi_mpifh

FOBJS = kdtree2.o advance.o balAV3.o                             \
        getderivs.o getTemperature.o                             \
        initialize_hyperbolic.o init.o kernels.o                 \
        main.o output.o pressure.o                               \
        ran1.o spline.o splint.o initialize_polyes.o             \
	initialize_polymces.o initialize_corotating.o            \
        relax.o zeroin.o resplintmu.o grav.o initialize_triple.o \
	temperaturefunction.o initialize_bps.o                   \
	initialize_bpbh.o calccom.o elements.o                   \
	initialize_smbh.o initialize_parent.o                    \
	initialize_multiequalmass.o initialize_rescale.o         \
	initialize_hyperbolic_binary_single.o skipahead.o        \
	compbest3.o changetf.o tstep.o initialize_grsph.o        \
	eatem.o useeostable.o hunt.o usekappatable.o             \
	initialize_asciiimage.o
#  grav.o 
CPUOBJS = $(FOBJS) cpu_grav.o
GPUOBJS = $(FOBJS) gpu_grav.o
%.o: %.f starsmasher.h
	$(FC) -c $(FFLAGS) $<
%.o :: %.f90 starsmasher.h
	$(FC) -c $(FFLAGS) $<
#%.o: %.c starsmasher.h
#	$(CC) -c $(CFLAGS) $<

GPUEXEC = test_gpu_sph
CPUEXEC = test_cpu_sph

gpu: $(GPUOBJS)
	make -f Makefile -C $(GRAVLIB)
	$(CXX) -v -o $(GPUEXEC) $(LDFLAGS) $(GPUOBJS) $(LIBS)
	mv $(GPUEXEC) ..
	echo ***MADE VERSION THAT USES GPUS***

cpu: $(CPUOBJS)
	$(LD) -o $(CPUEXEC) $(LDFLAGS) $(CPUOBJS) $(LIBS) 
	mv $(CPUEXEC) ..
	echo ***MADE VERSION THAT DOES NOT NEED GPUS***

clean:  
	/bin/rm -rf *o *__*.f90 *_*.mod ../*_sph
	make clean -C $(GRAVLIB)

The same Makefile also seemed to generate *_sph file normally for step 1(b), however evaluation instantly aborted when I tried to execute the mpirun -np 1 ./*_sph command with error as follows

 SPHgrav found 1 CUDA devices
  Device= 0: NVIDIA GeForce RTX 3060 computeMode= 0 computeCapability= 8_6  supported= YES
At line 587 of file init.f (unit = 12, file = 'sph.input')
Fortran runtime error: Cannot match namelist object name bimpact

Error termination. Backtrace:
#0  0x7f9068845960 in ???
#1  0x7f90688464d9 in ???
#2  0x7f906884710f in ???
#3  0x7f9068a949b4 in ???
#4  0x7f9068a9dd6d in ???
#5  0x7f9068a9e0e3 in ???
#6  0x562253e82770 in ???
#7  0x562253e82d86 in ???
#8  0x562253e87bf2 in ???
#9  0x562253e7060e in ???
#10  0x7f9067ed7d8f in ???
#11  0x7f9067ed7e3f in ???
#12  0x562253e706e4 in ???
#13  0xffffffffffffffff in ???
--------------------------------------------------------------------------
Primary job  terminated normally, but 1 process returned
a non-zero exit code. Per user-direction, the job has been aborted.
--------------------------------------------------------------------------
--------------------------------------------------------------------------
mpirun detected that one or more processes exited with non-zero status, thus causing
the job to be terminated. The first process to do so was:

  Process name: [[65184,1],0]
  Exit code:    2
--------------------------------------------------------------------------

I've attempted to replace all impactparameter in init.f into bimpact and otherwise in sph.input, and none of these solved the problem

The machine is using WSL2 and attached to a NVIDIA GeForce RTX 3060 + cuda-12.6

@jalombar
Copy link
Owner

jalombar commented Sep 30, 2024 via email

@fieldequation
Copy link
Author

Hello, Thank you for pointing out this issue. The problem was with the example files on GitHub: the file starsmasher/example_input/relaxation_TWIN_model/sph.input should not have contained a line setting a value for bimpact, a variable that has been phased out. There is no need to set bimpact in a relaxation run. If you delete the line setting bimpact in sph.input and use the same executable you used in step 1(a), the code should run. If you get a similar error in step 2, please change the parameter bimpact in sph.input to be called rp instead. For example, delete the bimpact line in sph.input and use something like the following: rp=3.9d0, ! periastron separation of initial Keplerian orbit If the code continues to give problems, please let me know. I've updated the two relevant sph.input files in the master branch of the GitHub repository so that the next person won't encounter this issue. Thank you. Regards, Jamie Lombardi

Thanks, after modifying the sph.input file StarSmaster works fine!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants