Decision Optimization

Decision Optimization

Delivers prescriptive analytics capabilities and decision intelligence to improve decision-making.


#Analytics
#DecisionOptimization
#DecisionOptimization
 View Only

Distributed MIP optimization on a single machine with multiple cores

  • 1.  Distributed MIP optimization on a single machine with multiple cores

    Posted 11/14/15 09:16 PM

    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