Compilation of cluster

8 posts / 0 new
Last post
klaudia
Compilation of cluster

I hope that you can help me and find solution for my installation problems. I was trying to install Chemshell on cluster with loading intel modules, exporting CC as icc and F77, F90 to ifort. It failed at the stage of make, configuration went well. Then I tried use GCC instead intel, the same happened. Then PGI with different problems, but also compilation error. I tried to configure with and without parallel option. That didn't solve my problems. Does anybody have experience with installation Chemshell on cluster, do I really need to install compilers to my home directory instead of loading them. If yes, which one you recommend the most?

tomkeal
tomkeal's picture
Normally you should be able

Normally you should be able to use standard compiler modules on a cluster, although it's often worth trying more than one version as they can be buggy. I would generally recommend using Intel compilers although GNU should work fine as well. I wouldn't recommend PGI as we don't test this ourselves.

Could you please try building a basic serial build with the following configuration and post the error that you get when you run make:

export CC=icc
export F77=ifort
export F90=ifort

export TCLROOT= [your Tcl build directory]
export LIBTCL= [your Tcl build directory] /lib/libtcl8.6.so

./configure

klaudia
When I make configure it

When I make configure it works without problems, and the last lines look like that:
config.status: creating config.h
config.status: config.h is unchanged
To build ChemShell, now issue
% cd ..
% make

Then I make cd .. and 'make' and got error:

making in linpack
make[2]: Entering directory '/pfs/nobackup/home/k/klaudia/Programs/chemsh-3.7.1/src/linpack'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/pfs/nobackup/home/k/klaudia/Programs/chemsh-3.7.1/src/linpack'
making in eispack
make[2]: Entering directory '/pfs/nobackup/home/k/klaudia/Programs/chemsh-3.7.1/src/eispack'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/pfs/nobackup/home/k/klaudia/Programs/chemsh-3.7.1/src/eispack'
making in chemsh
make[2]: Entering directory '/pfs/nobackup/home/k/klaudia/Programs/chemsh-3.7.1/src/chemsh'
ifort -o ../../bin/chemsh.x tclAppInit.o chem.o parsearg.o modtimes.o sockets.o gradcheck.o read_punch.o alex.o restraint.o esp.o esp_f.o interface_objects.o interface_matrix.o interface_zmatrix.o interface_fragment.o interface_field.o debug.o banner.o z_create.o c_create.o serial.o mainf.o mainc.o test.o ../../lib/libopt.a ../../lib/libdl_poly.a ../../lib/libvibrate.a ../../lib/libgulp_interface.a ../../lib/libdynamics.a ../../lib/libcharmm.a ../../lib/libpointcharge.a ../../lib/libparam.a ../../lib/libnewopt.a ../../lib/libhybrid2.a ../../lib/libhdlc.a ../../lib/libgamess_interface.a ../../lib/libdlf.a ../../lib/libcluster.a ../../lib/libopt.a ../../lib/libdl_poly.a ../../lib/libvibrate.a ../../lib/libgulp_interface.a ../../lib/libdynamics.a ../../lib/libcharmm.a ../../lib/libpointcharge.a ../../lib/libparam.a ../../lib/libnewopt.a ../../lib/libhybrid2.a ../../lib/libhdlc.a ../../lib/libgamess_interface.a ../../lib/libdlf.a ../../lib/libcluster.a ../../lib/libchemsh.a ../../lib/libfutils.a ../../lib/libcutils.a ../../lib/libobjects.a ../../lib/libdfragment.a ../../lib/libdfield.a ../../lib/libdtrmat.a ../../lib/libdmatrix.a ../../lib/libdzmatrix.a ../../lib/libdblock.a ../../lib/libdutil.a ../../lib/liblapack.a ../../lib/libeispack.a ../../lib/liblinpack.a ../../lib/libblas.a \
-L../../lib \
/pfs/nobackup/home/k/klaudia/Programs/tcl/tcl8.6.8/lib/libtcl8.6.so -lm -lc
../../lib/libdl_poly.a(interface.o): In function `register_dl_poly':
interface.c:(.text+0x29): undefined reference to `ParRegisterFunc'
../../lib/libdl_poly.a(interface.o): In function `DlPoly_CreateObjCmd':
interface.c:(.text+0xf38): undefined reference to `ParExecFunc'
../../lib/libdl_poly.a(interface.o): In function `DlPoly_ObjCmd':
interface.c:(.text+0x1a5d): undefined reference to `ParExecFunc'
interface.c:(.text+0x2020): undefined reference to `ParExecFunc'
interface.c:(.text+0x21a3): undefined reference to `ParExecFunc'
../../lib/libdl_poly.a(exitcomms.o): In function `exitcomms_':
exitcomms.tmp.f:(.text+0x47): undefined reference to `mpi_finalize_'
../../lib/libdl_poly.a(gdsum.o): In function `gdsum_':
gdsum.tmp.f:(.text+0x16): undefined reference to `chemsh_comm_workgroup_'
gdsum.tmp.f:(.text+0x46): undefined reference to `mpi_allreduce_'
../../lib/libdl_poly.a(gsync.o): In function `gsync_':
gsync.tmp.f:(.text+0x4): undefined reference to `chemsh_comm_workgroup_'
gsync.tmp.f:(.text+0x17): undefined reference to `mpi_barrier_'
../../lib/libdl_poly.a(gisum.o): In function `gisum_':
gisum.tmp.f:(.text+0x16): undefined reference to `chemsh_comm_workgroup_'
gisum.tmp.f:(.text+0x46): undefined reference to `mpi_allreduce_'
../../lib/libdl_poly.a(gimax.o): In function `gimax_':
gimax.tmp.f:(.text+0x16): undefined reference to `chemsh_comm_workgroup_'
gimax.tmp.f:(.text+0x46): undefined reference to `mpi_allreduce_'
../../lib/libdl_poly.a(merge.o): In function `merge_':
merge.tmp.f:(.text+0x28): undefined reference to `chemsh_comm_workgroup_'
merge.tmp.f:(.text+0x37f): undefined reference to `mpi_irecv_'
merge.tmp.f:(.text+0x3db): undefined reference to `mpi_send_'
merge.tmp.f:(.text+0x3fb): undefined reference to `mpi_wait_'
../../lib/libdl_poly.a(shlmerge.o): In function `shlmerge_':
shlmerge.tmp.f:(.text+0x36): undefined reference to `chemsh_comm_workgroup_'
shlmerge.tmp.f:(.text+0x1ec): undefined reference to `mpi_send_'
shlmerge.tmp.f:(.text+0x224): undefined reference to `mpi_recv_'
../../lib/libdlf.a(dlf.o): In function `dlf_get_params_':
dlf.c:(.text+0x1a95): undefined reference to `ParNWorkgroups'
../../lib/libdlf.a(dlf.o): In function `dlf_get_procinfo_':
dlf.c:(.text+0x46b0): undefined reference to `ParNWorkgroups'
dlf.c:(.text+0x46b9): undefined reference to `ParWorkgroupID'
dlf.c:(.text+0x46c3): undefined reference to `ParCommCounterparts'
../../lib/libdlf.a(dlf.o): In function `dlf_get_taskfarm_':
dlf.c:(.text+0x46f0): undefined reference to `ParNWorkgroups'
dlf.c:(.text+0x4700): undefined reference to `ParNodeID'
dlf.c:(.text+0x470b): undefined reference to `ParWorkgroupID'
dlf.c:(.text+0x471d): undefined reference to `ParCommCounterparts'
../../lib/libdl_poly.a(shmove.o): In function `shmove_':
shmove.tmp.f:(.text+0x23): undefined reference to `chemsh_comm_workgroup_'
shmove.tmp.f:(.text+0x2bf): undefined reference to `mpi_send_'
shmove.tmp.f:(.text+0x304): undefined reference to `mpi_recv_'
../../lib/libdl_poly.a(merge1.o): In function `merge1_':
merge1.tmp.f:(.text+0x28): undefined reference to `chemsh_comm_workgroup_'
merge1.tmp.f:(.text+0x1ad): undefined reference to `mpi_irecv_'
merge1.tmp.f:(.text+0x1eb): undefined reference to `mpi_send_'
merge1.tmp.f:(.text+0x203): undefined reference to `mpi_wait_'
merge1.tmp.f:(.text+0x23f): undefined reference to `mpi_irecv_'
merge1.tmp.f:(.text+0x27b): undefined reference to `mpi_send_'
merge1.tmp.f:(.text+0x293): undefined reference to `mpi_wait_'
../../lib/libdl_poly.a(merge4.o): In function `merge4_':
merge4.tmp.f:(.text+0x28): undefined reference to `chemsh_comm_workgroup_'
merge4.tmp.f:(.text+0x3e5): undefined reference to `mpi_irecv_'
merge4.tmp.f:(.text+0x442): undefined reference to `mpi_send_'
merge4.tmp.f:(.text+0x462): undefined reference to `mpi_wait_'
../../lib/libobjects.a(objects.o): In function `read_all_objects':
objects.c:(.text+0x119b): undefined reference to `ParNWorkgroups'
../../lib/libobjects.a(objects.o): In function `object_diskloc':
objects.c:(.text+0x17dd): undefined reference to `ParNWorkgroups'
Makefile:143: recipe for target '../../bin/chemsh.x' failed
make[2]: *** [../../bin/chemsh.x] Error 1
make[2]: Leaving directory '/pfs/nobackup/home/k/klaudia/Programs/chemsh-3.7.1/src/chemsh'
Makefile:39: recipe for target 'allsrc' failed
make[1]: *** [allsrc] Error 2
make[1]: Leaving directory '/pfs/nobackup/home/k/klaudia/Programs/chemsh-3.7.1/src'
Makefile:16: recipe for target 'all' failed
make: *** [all] Error 2

tomkeal
tomkeal's picture
Could you try again starting

Could you try again starting in a new directory? It may be previous attempts to build the code are causing problems. Alternatively you could run 'make clean' before reconfiguring but safer to start from scratch.

klaudia
Thank you for suggestion. I

Thank you for suggestion. I made new directory and start from scratch and this is how 'make' finished:
/pfs/nobackup/home/k/klaudia/Programs/tcl/tcl8.6.8/lib/libtcl8.6.so -lm -lc
(tmp=`cat pathappend.txt`; pathappend=`echo $tmp | sed 's@ @@g'`;\
cat chemsh.script | sed s@_PATH_@`pwd`@g | sed s@_TCLROOT_@$TCLROOT@g | sed s@_PATHAPPEND_@$pathappend@ | ../../bin/ccnvrt linux notk > ../../scripts/chemsh ;\
chmod 755 ../../scripts/chemsh )
make index
make[3]: Entering directory '/pfs/nobackup/home/k/klaudia/Programs/chemsh-3.7.1/src/chemsh'
application-specific initialization failed: invalid command name "chemsh_tcl_init"
ChemShell exiting code 0
warning: there was a problem executing the exit procedure chemsh_exit_master
touch index.stamp
make[3]: Leaving directory '/pfs/nobackup/home/k/klaudia/Programs/chemsh-3.7.1/src/chemsh'
make[2]: Leaving directory '/pfs/nobackup/home/k/klaudia/Programs/chemsh-3.7.1/src/chemsh'
making in mndocore
make[2]: Entering directory '/pfs/nobackup/home/k/klaudia/Programs/chemsh-3.7.1/src/mndocore'
ifort -c mndo.f
ifort -c block.f
ifort -c input1.f
input1.f(712): remark #8291: Recommended relationship between field width 'W' and the number of fractional digits 'D' in this edit descriptor is 'W>=D+7'.
1 // 1X,' FOR ELECTRONIC ENERGY IN EV ...',E8.2,
------------------------------------------------------------^
input1.f(713): remark #8291: Recommended relationship between field width 'W' and the number of fractional digits 'D' in this edit descriptor is 'W>=D+7'.
2 // 1X,' FOR DENSITY MATRIX (DIAGONAL) ...',E8.2)
------------------------------------------------------------^
ifort -c input2.f
ifort -c inputm.f
ifort -c scf.f
ifort -c dcart.f
ifort -c hcore.f
ifort -c guessp.f
ifort -c iter.f
ifort -c fock.f
ifort -c print.f
ifort -c gmetry.f
ifort -c linalg.f
ifort -c cpusec.f
ifort -o ../../bin/mndocore mndo.o block.o input1.o input2.o inputm.o scf.o dcart.o hcore.o guessp.o iter.o fock.o print.o gmetry.o linalg.o cpusec.o
make[2]: Leaving directory '/pfs/nobackup/home/k/klaudia/Programs/chemsh-3.7.1/src/mndocore'
making in symmetry
make[2]: Entering directory '/pfs/nobackup/home/k/klaudia/Programs/chemsh-3.7.1/src/symmetry'
icc -o ../../bin/symmetry -DLINUX -DIFC symmetry.c -lm -lc
make[2]: Leaving directory '/pfs/nobackup/home/k/klaudia/Programs/chemsh-3.7.1/src/symmetry'
make[1]: Leaving directory '/pfs/nobackup/home/k/klaudia/Programs/chemsh-3.7.1/src'
make index
make[1]: Entering directory '/pfs/nobackup/home/k/klaudia/Programs/chemsh-3.7.1/src'
make[2]: Entering directory '/pfs/nobackup/home/k/klaudia/Programs/chemsh-3.7.1/src/chemsh'
Initialising Tcl-ChemShell 3.7.1 on linux
ChemShell exiting code 0
touch index.stamp
make[2]: Leaving directory '/pfs/nobackup/home/k/klaudia/Programs/chemsh-3.7.1/src/chemsh'
make[1]: Leaving directory '/pfs/nobackup/home/k/klaudia/Programs/chemsh-3.7.1/src'

tomkeal
tomkeal's picture
That appears to have compiled

That appears to have compiled successfully. Now try running the validation script run_validation.tcsh in examples/ (see section 7 "Verifying Compilation" in the installation guide)

klaudia
Thank you a lot for help,

Thank you a lot for help, almost everything went well instead ones needed Orca, turbomole etc.

klaudia
Okay I tried the script that

Okay I tried the script that I got from my collegue from office and I got the same as in version 3.6 which I was thinking is problem. Do you have any idea what is causing that? This is what I got in log file:
pairlist : not used
exact_srf : 1
1-4 scale (elec) : 0.8333333333333334
1-4 scale (vdw : 0.5
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

...get_number_of_atoms/========================== Tstep: 3.2 Ttot: 9.6 ==
Use list-based excluded atom code

Electrostatics : Coulombic potential all pairs

Short-range : Exact evaluation

**** WARNING - total system charge: -0.0010 ****

configuration file name:

from inpcrd

long range correction for: vdw energy 0.000000E+00
: vdw pressure 0.000000E+00
...energy/dl_poly.energy/======================== Tstep: 20.5 Ttot: 30.1 ==

MM Energies (kcal/mol) total : 2.65903237E+09
short range: 2.65903707E+09 coulombic : -1.10743992E+05 3body : 0.00000000E+00
bond : 1.01667791E+05 angle : 1.93944677E+03 str-bend : 0.00000000E+00
per dihed : 2.42893299E+03 harm dihed : 0.00000000E+00 angle-angle: 0.00000000E+00
ang-ang-tor: 0.00000000E+00 urey-brdly : 0.00000000E+00 inversion : 0.00000000E+00
...energy/dl_poly.kill/========================== Tstep: 28.5 Ttot: 58.6 ==
MM termination code: 0
-----------------------------------------------------------------------------------
Energy ( dl_poly): 4237335.619152 (a.u.)
-----------------------------------------------------------------------------------
load_amber_coords/read_pdb/====================== Tstep: 0.2 Ttot: 58.8 ==
...read_pdb/read_xyz/============================ Tstep: 0.6 Ttot: 59.4 ==
load_amber_coords/write_pdb/===================== Tstep: 0.3 Ttot: 59.7 ==
...write_pdb/write_xyz/========================== Tstep: 0.0 Ttot: 59.7 ==
get_objlist: no readable file rc.opt.c exists
ChemShell exiting code 0
60,1 Bot

And this is my scrpit:
# hybrid with electrostaic embedding
global sys_name_id
source active.dat
set sys_name_id rc
set res [ pdb_to_res "${sys_name_id}.pdb" ]
#set myresidues [ inlist function=combine residues= $res sets= {PRO0176 PRO0246 PRO07} target=fatone ]
set prmtop rc_amber.prmtop
set inpcrd rc_amber.inpcrd
read_pdb file=rc.pdb coords=c
write_pdb file=rc2.pdb coords=c
load_amber_coords inpcrd=$inpcrd prmtop=$prmtop coords=c
# for the time being we have to calculate an energy to be able to call list_amber_atom_charges
energy energy=e coords=c theory=dl_poly : [ list \
amber_prmtop_file=$prmtop \
scale14 = [ list [ expr 1 / 1.2 ] 0.5 ] \
mxexcl=2000 \
mxlist=500 \
cutoff=1000 \
use_pairlist = no \
save_dl_poly_files = yes \
exact_srf=yes \
list_option=none ]
set atom_charges [ list_amber_atom_charges ]
set qm_atoms { 505-520 1731-1751 2216-2232 2267-2282 2639-2649 3384-3399 }
# optimize geometry
dl-find coords=c active_atoms= $active residues= $myresidues list_option=full result=${sys_name_id}.opt.c \
theory=hybrid : [ list \
coupling= shift \
qm_region= $qm_atoms \
atom_charges= $atom_charges \
qm_theory= turbomole : [list \
read_control= yes \
scratchdir=/home/k/klaudia/pfs/scr \
hamiltonian= b97-d \
scftype= rhf ] \
mm_theory= dl_poly : [ list \
amber_prmtop_file= $prmtop \
exact_srf=yes \
use_pairlist=no \
mxlist=500 \
cutoff=1000 \
mxexcl=2000 \
debug_memory=no \

It should be structure optimisation that I got from Gromacs MD with amber FF. I got cluster pdb which I change from Gromacs format to Amber format and force field parameters.

Log in or register to post comments