- Before doing this, be sure to issue
switcher mpi lam-7.0.6
command (you just need to do it only once, the setting will be saved.). - I managed to port sander8.lam with OSCAR's LAM, doing MPICH should be the same.
- The thing note-worthy is that the protocol for shared memory parallel run should be sysv in LAM
setenv TESTsander ~/bin/sander8.lam setenv DO_PARALLEL "mpirun -ssi rpi sysv -np 2" echo "localhost cpu=2" > lam_host lamboot -v lam_host lamhalt
Wondering why ifc (7) is happy with OSCAR's LAM/MPI? Because I literally defined the MPI function call to something like this (in amber8/src/config.h):
FPP= cpp -traditional $(FPPFLAGS) -Dmpi_allreduce=mpi_allreduce_
-Dmpi_recv=mpi_recv_ -Dmpi_send=mpi_send_ -Dmpi_barrier=mpi_barrier_
-Dmpi_finalize=mpi_finalize_ -Dmpi_abort=mpi_abort_ -Dmpi_reduce=mpi_reduce_
-Dmpi_comm_size=mpi_comm_size_ -Dmpi_comm_rank=mpi_comm_rank_
-Dmpi_comm_size=mpi_comm_size_ -Dmpi_wait=mpi_wait_ -Dmpi_isend=mpi_isend_
-Dmpi_bcast=mpi_bcast_ -Dmpi_sendrecv=mpi_sendrecv_
-Dmpi_comm_free=mpi_comm_free_ -Dmpi_comm_split=mpi_comm_split_
-Dmpi_init=mpi_init_
For PMEMD at amber8, config.h need to be modified to this:
setenv CPP "cpp -traditional -I$LAM_INCLUDE -Dmpi_allreduce=mpi_allreduce_
-Dmpi_recv=mpi_recv_ -Dmpi_send=mpi_send_ -Dmpi_barrier=mpi_barrier_
-Dmpi_finalize=mpi_finalize_ -Dmpi_abort=mpi_abort_ -Dmpi_reduce=mpi_reduce_
-Dmpi_comm_size=mpi_comm_size_ -Dmpi_comm_rank=mpi_comm_rank_
-Dmpi_comm_size=mpi_comm_size_ -Dmpi_wait=mpi_wait_ -Dmpi_isend=mpi_isend_
-Dmpi_bcast=mpi_bcast_ -Dmpi_sendrecv=mpi_sendrecv_
-Dmpi_comm_free=mpi_comm_free_ -Dmpi_comm_split=mpi_comm_split_
-Dmpi_init=mpi_init_ -Dmpi_get_count=mpi_get_count_ -Dmpi_gather=mpi_gather_
-Dmpi_gatherv=mpi_gatherv_ -Dmpi_allgatherv=mpi_allgatherv_"
No comments:
Post a Comment