gms-bbg / gamess-issues

GAMESS issue tracking
7 stars 1 forks source link

The customization of rungms is too hard #11

Closed xiongyan21 closed 5 years ago

xiongyan21 commented 5 years ago

The environment of compiling GAMESS 2019R1 Patch1 is Ubuntu 18.04 openmpi Intel mkl 2018.3.222 The compilation order make ddi make modules make -j4 and the terminal exhibits "The linking of GAMESS to binary gamess.2019R1.x was successful" with the omission of ccsdt3a and LIBCHEM . 0.762u 0.198s 0:00.96 98.9% 0+0k 0+204928io 0pf+0w"

If the cusomization of rungms is not carried out, " rungms JOB VERNO NCPUS >& JOB.log &" gives " no such order". Is there a short cut for the customization since it is too hard. Very Best Regards!

saromleang commented 5 years ago

The rungms script is pretty gnarly. Try the rungms-dev script instead. About 30% leaner.

xiongyan21 commented 5 years ago

Thanks a lot. I will try.

xiongyan21 commented 5 years ago

Can I only though the modification of the rungms-dev script to customise? Thanks.

saromleang commented 5 years ago

You can only customize the way GAMESS is launched through modification of either rungms or rungms-dev. You can customize what types of jobs to run through an input file.

colleeneb commented 5 years ago

I'll add: rungms covers a lot of launch cases and error checking/job cleanup, so it's large, and useful for that purpose. But you don't necessarily need it to run for specific simple cases (like MPI-only GAMESS, with something like Intel MPI) and you're not worried about job cleanup. GAMESS mostly just needs environment variables to be set by sourcing gms-files.csh and setting the right variable for the input file, and then you can launch it with mpirun -n $cores gamess.your_build.x &> log_file. I'm leaving out a few details, but if you want to write something much smaller to run GAMESS for specific simple cases you can. A simple example is:

#!/bin/csh                                                                                                                                                                                                                         
#
# use at your own risk, does not clean everything well. (especially related to semaphores)                                                                                                                                         
# usage: script.sh [input file] [number of compute processes to run] [version]                                                                                                                                                     
#
if ("$#" != 3) then
    echo "Need three inputs--the name of the input file, the number of compute processes to run, and version"
    echo "Example: ./script.sh exam01.inp 2 00"
    echo "   This runs exam01.inp with 2 compute processes (4 MPI ranks)"
    echo "   using gamess.00.x in the directory that is hardcoded in this script."
    exit
endif

# hardcoded path, should change. this is the location of the gamess root
setenv GMSPATH /home/user/gamess/

if ( -f $1 ) then
    if ($1:r.inp == $1) then
        set input=$1:r
    else
        set input=$1
    endif
    set version = $3
    @ cores = ($2 * 2 )

    cp $input.inp JOB.$input.F05
    setenv JOB JOB.$input
    setenv SCR ./
    setenv USERSCR ./
    source $GMSPATH/gms-files.csh

    echo ---- Running $input on host `hostname`! ----
    echo ---- Using $GMSPATH/gamess.$version.x ----
    mpirun -n $cores $GMSPATH/gamess.$version.x > $input.log

    set ret=$?
    if ($ret != 0) then
        echo "PROBLEM WITH RUN"
        echo "exit code $ret"
    endif

    rm $SCR/$JOB.F*
else
    echo "$1 does not exist."
endif
xiongyan21 commented 5 years ago

Thanks a lot. I will follow your advice and try. Very Best Regards!

xiongyan21 commented 5 years ago

I add your script immediately after the original gms-files.csh script with the following sentences modified 1.setenv GMSPATH /home/hp/computation1/gamess/ 2.mpirun -n $cores $GMSPATH/gamess.$version.x $JOP.inp &> $JOB.log When I use the mpirun command, the error message in the log file is YOU MUST ASSIGN GENERIC NAME INPUT WITH A SETENV. EXECUTION OF GAMESS TERMINATED -ABNORMALLY- AT Fri Aug 16 18:13:37 2019 STEP CPU TIME = 0.00 TOTAL CPU TIME = 0.0 ( 0.0 MIN) TOTAL WALL CLOCK TIME= 0.0 SECONDS, CPU UTILIZATION IS 100.00% DDI Process 0: error code 911

MPI_ABORT was invoked on rank 0 in communicator MPI_COMM_WORLD with errorcode 911.

NOTE: invoking MPI_ABORT causes Open MPI to kill all MPI processes. You may or may not see output from other processes, depending on exactly when Open MPI kills them.

What should I do to let it run? Thanks a lot for your time and patience. Very Best Regards!

xiongyan21 commented 5 years ago

Previously, it seems I cannot define userscr on Ubuntu18.04. I will try to define it and continue. Thanks a lot. Very Best Regards!

xiongyan21 commented 5 years ago

I use mkdir ~/scr amd mkdir ~/usrscr to build the two directories, but still get the same error.