Hi All,
We have been working with Indigo and have switched to Juno. I have a couple of observations which may be (or may indicate) bugs or just my lack of experience with the environment.
1. I would like to support users who do not have a local toolchain - they are likely Windows or Mac users whose environment does not match the clusters (no local MPI installation, don't have Intel or PGI compilers). Right now, I have to just tell them
to select "Linux GCC" on the remote side and "Cygwin GCC" on the local side (see attachment), and then uncheck the "Debug_with_Cygwin GCC" and "Release_with_Cygwin GCC" configurations. That seems ponderous. Can I have a "No Local Toolchain" option?
2. I am able to use the module system to set the remote build environment using the "C/C++ Build/Environment Management" page. Building works (though mpicc is really using icc under the covers and not GCC as reported by Eclipse - I am assuming that
is a relic of selecting the "Linux GCC" remote side toolchain in the project constructor (see attachment).
14:16:24 **** Clean-only build of configuration Debug_with_Linux GCC_remote for project mpipi ****
make clean
**** Environment configuration script temporarily stored in /tmp/ptpscript_C82GxT ****
module purge >/dev/null 2>&1
module load modules/1.0
make clean
rm -rf ./src/mpipi.o ./src/mpipi.d mpipi
14:16:30 Build Finished (took 6s.438ms)
14:16:30 **** Build of configuration Debug_with_Linux GCC_remote for project mpipi ****
make all
**** Environment configuration script temporarily stored in /tmp/ptpscript_RlL1Nm ****
module purge >/dev/null 2>&1
module load modules/1.0
make all
Building file: ../src/mpipi.c
Invoking: GCC C Compiler
mpicc -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"src/mpipi.d" -MT"src/mpipi.d" -o "src/mpipi.o" "../src/mpipi.c"
Finished building: ../src/mpipi.c
Building target: mpipi
Invoking: GCC C++ Linker
mpicc -o "mpipi" ./src/mpipi.o
Finished building target: mpipi
14:16:38 Build Finished (took 7s.311ms)
3. The include paths discovered in the project are all local-side include paths. Remote-side symbols like MPI_COMM_WORLD and MPI_CHAR are not found. If I try to manually add a remote-side include path using the "C/C++ General/Paths and Symbols" screen,
it complains that the path cannot be found (so I guess it is looking at the local side). Note that I am still able to add a remote path with a remote project.
4. Now, to try to run the job, I create a
#!/bin/bash
#PBS -q parallel
#PBS -N mpipi
#PBS -l nodes=2:ppn=12
#PBS -l walltime=00:05:00
MPI_ARGS="-np 24"
if [ "-np" == "${MPI_ARGS}" ] ; then
MPI_ARGS=
fi
COMMAND=mpiexec
if [ -n "${COMMAND}" ] ; then
COMMAND="${COMMAND} ${MPI_ARGS} /nfs/07/dhudak/mpipi/Debug_with_Linux GCC_remote/mpipi "
else
COMMAND="/nfs/07/dhudak/mpipi/Debug_with_Linux GCC_remote/mpipi "
fi
cd /nfs/07/dhudak
${COMMAND}
Unfortunately, the space between "Linux" and "GCC" in the COMMAND causes the following problem:
mpiexec: Error: stat_exe: /nfs/07/dhudak/mpipi/Debug_with_Linux: No such file or directory.
I would think that the script generator would know to look for spaces and escape them appropriately.
Thanks,
|