Originally posted by: Mr.Hai
Hello,
I tried to run an example of distributed MIP optimization on a single machine with multiple cores (4 cores in this case) using OPEN MP. Here is the script that I use to specify the master and workers.
1. First case
~/opt/openmpi/bin$ mpirun -x "LD_LIBRARY_PATH=/home/daohai/IBM/cplex/bin/x86-64_linux:/home/daohai/opt/openmpi/lib" -tag-output -localhost localhost1 -localhost localhost2 -localhost localhost3 -localhost localhost4 /home/daohai/IBM/cplex/bin/x86-64_linux/cplex -mpi -libpath="/home/daohai/opt/openmpi/lib" -mpilib="/home/daohai/opt/openmpi/lib/libmpi.so" -mpiapi="openmpi"
However, it turns out that:
mpirun was unable to launch the specified application as it could not find an executable:
Executable: -localhost
Node: daohai-Inspiron-5523
2. Second case: when the mpirun script is slightly changed
daohai@daohai-Inspiron-5523:~/opt/openmpi/bin$ mpirun -x "LD_LIBRARY_PATH=/home/daohai/IBM/cplex/bin/x86-64_linux:/home/daohai/opt/openmpi/lib" -tag-output -host localhost -host localhost -host localhost -host localhost /home/daohai/IBM/cplex/bin/x86-64_linux/cplex -mpi -libpath="/home/daohai/opt/openmpi/lib" -mpilib="/home/daohai/opt/openmpi/lib/libmpi.so" -mpiapi="openmpi"
and here is the response:
[daohai-Inspiron-5523:01365] [[56193,0],0] mca_oob_tcp_recv_handler: invalid message type: 15
[daohai-Inspiron-5523:01365] [[56193,0],0] mca_oob_tcp_recv_handler: invalid message type: 15
[daohai-Inspiron-5523:01365] [[56193,0],0] mca_oob_tcp_recv_handler: invalid message type: 15
[daohai-Inspiron-5523:01365] [[56193,0],0] mca_oob_tcp_recv_handler: invalid message type: 15
--------------------------------------------------------------------------
mpirun noticed that the job aborted, but has no info as to the process
that caused that situation.
3. In the case of using process transport protocol by writing the following configuration file (.vmc)
<?xml version="1.0"?>
<vmc>
<machine name="localhost">
<transport type="process">
<cmdline>
<item value="ssh"/>
<item value="localhost"/>
<item value="~/home/daohai/IBM//cplex/bin/x86-64_linux/cplex"/>
<item value="-worker=process"/>
<item value="-stdio"/>
<item value="-libpath=~/home/daohai/IBM//cplex/bin/x86-64_linux"/>
</cmdline>
</transport>
<param name="threads" value="2" />
</machine>
<machine name="localhost">
<transport type="process">
<cmdline>
<item value="ssh"/>
<item value="localhost"/>
<item value="/home/daohai/IBM//cplex/bin/x86-64_linux/cplex"/>
<item value="-worker=process"/>
<item value="-stdio"/>
<item value="-libpath=/home/daohai/IBM//cplex/bin/x86-64_linux"/>
</cmdline>
</transport>
<param name="threads" value="3" />
</machine>
<machine name="localhost">
<transport type="process">
<cmdline>
<item value="ssh"/>
<item value="localhost"/>
<item value="/home/daohai/IBM//cplex/bin/x86-64_linux/cplex"/>
<item value="-worker=process"/>
<item value="-stdio"/>
<item value="-libpath=/home/daohai/IBM//cplex/bin/x86-64_linux"/>
</cmdline>
</transport>
<param name="threads" value="4" />
</machine>
</vmc>
And in the interactive mode, I perform three following commands
read config.vmc
read knapsack.lp
mipopt
and here is the response:
CPLEX Error 1814: Failed to load dynamically loadable library.
So, the questions are:
1. How to precisely specify the master and workers both in mpirun and in the case of process transport protocol
2. Why this error occurs: "CPLEX Error 1814: Failed to load dynamically loadable library" even though I precisely indicate the Cplex bin files in the scripts
Thanks so much for any advices/suggestion
#CPLEXOptimizers#DecisionOptimization