Windows installer : add mpi option in installer 18/15518/1
Antoine ELIAS [Wed, 12 Nov 2014 11:23:44 +0000 (12:23 +0100)]
Change-Id: Idb2fb3881765dcb418fd3adad0790a308d469ea1

26 files changed:
scilab/Scilab.sln
scilab/libs/.gitignore
scilab/modules/core/includes/callinterf.h
scilab/modules/mpi/etc/mpi.start
scilab/modules/mpi/examples/MPIHelloWorld.sci [new file with mode: 0644]
scilab/modules/mpi/examples/MPIHelloWorldDouble.sci [new file with mode: 0644]
scilab/modules/mpi/examples/MPIPi.sci [new file with mode: 0644]
scilab/modules/mpi/examples/MPIPi_seq.sci [moved from scilab/modules/mpi/macros/MPIPi_seq.sci with 100% similarity]
scilab/modules/mpi/examples/simple.sci [new file with mode: 0644]
scilab/modules/mpi/macros/MPIHelloWorld.sci [deleted file]
scilab/modules/mpi/macros/MPIHelloWorldDouble.sci [deleted file]
scilab/modules/mpi/macros/MPIPi.sci [deleted file]
scilab/modules/mpi/macros/buildmacros.bat [new file with mode: 0644]
scilab/modules/mpi/macros/buildmacros.sce
scilab/modules/mpi/macros/cleanmacros.bat [new file with mode: 0644]
scilab/modules/mpi/macros/simple.sci [deleted file]
scilab/modules/mpi/mpi.iss [new file with mode: 0644]
scilab/modules/mpi/mpi.vcxproj
scilab/modules/mpi/sci_gateway/c/gw_mpi.c
scilab/modules/mpi/sci_gateway/mpi_gateway.xml
scilab/modules/mpi/src/c/DllmainMpi.c
scilab/tools/innosetup/code_modules.iss
scilab/tools/innosetup/components.iss
scilab/tools/innosetup/en_US_scilab.isl
scilab/tools/innosetup/files.iss
scilab/tools/innosetup/fr_FR_scilab.isl

index 0f8eebb..b7fcdd0 100644 (file)
@@ -802,10 +802,6 @@ Global
                {0BD503EF-5CB6-4277-BAC4-8955C97F247D}.Release|Win32.Build.0 = Release|Win32
                {0BD503EF-5CB6-4277-BAC4-8955C97F247D}.Release|x64.ActiveCfg = Release|x64
                {0BD503EF-5CB6-4277-BAC4-8955C97F247D}.Release|x64.Build.0 = Release|x64
-               {D319F719-F429-4842-A6F9-B1227FE2A54D}.Debug|Win32.ActiveCfg = Debug|Win32
-               {D319F719-F429-4842-A6F9-B1227FE2A54D}.Debug|x64.ActiveCfg = Debug|x64
-               {D319F719-F429-4842-A6F9-B1227FE2A54D}.Release|Win32.ActiveCfg = Release|Win32
-               {D319F719-F429-4842-A6F9-B1227FE2A54D}.Release|x64.ActiveCfg = Release|x64
                {05D8F60B-332A-4161-B946-B8AB30ED439C}.Debug|Win32.ActiveCfg = Debug|Win32
                {05D8F60B-332A-4161-B946-B8AB30ED439C}.Debug|Win32.Build.0 = Debug|Win32
                {05D8F60B-332A-4161-B946-B8AB30ED439C}.Debug|x64.ActiveCfg = Debug|x64
@@ -1599,9 +1595,13 @@ Global
                {424A5578-BA28-435F-8313-8D85886A3539}.Release|x64.ActiveCfg = Release|x64
                {424A5578-BA28-435F-8313-8D85886A3539}.Release|x64.Build.0 = Release|x64
                {5E726409-247A-464A-A994-6E6A7A02A981}.Debug|Win32.ActiveCfg = Debug|Win32
+               {5E726409-247A-464A-A994-6E6A7A02A981}.Debug|Win32.Build.0 = Debug|Win32
                {5E726409-247A-464A-A994-6E6A7A02A981}.Debug|x64.ActiveCfg = Debug|x64
+               {5E726409-247A-464A-A994-6E6A7A02A981}.Debug|x64.Build.0 = Debug|x64
                {5E726409-247A-464A-A994-6E6A7A02A981}.Release|Win32.ActiveCfg = Release|Win32
+               {5E726409-247A-464A-A994-6E6A7A02A981}.Release|Win32.Build.0 = Release|Win32
                {5E726409-247A-464A-A994-6E6A7A02A981}.Release|x64.ActiveCfg = Release|x64
+               {5E726409-247A-464A-A994-6E6A7A02A981}.Release|x64.Build.0 = Release|x64
        EndGlobalSection
        GlobalSection(SolutionProperties) = preSolution
                HideSolutionNode = FALSE
index 7dca4ee..644b312 100644 (file)
@@ -16,4 +16,4 @@ Eigen
 *.lib
 Eigen
 curl
-openmpi
\ No newline at end of file
+mpi
\ No newline at end of file
index e5b5c50..96e5cbc 100644 (file)
@@ -93,8 +93,8 @@
 /* 69 */                        #include "dynamic_gateways.h" /* preferences */
 /* 70 */                        #include "dynamic_gateways.h" /* graphic_objects */
 /* 71 */                        #include "dynamic_gateways.h" /* external_objects */
-/* 72 */                                   #include "dynamic_gateways.h" /* MPI */
-/* 73 */                        #include "dynamic_gateways.h" /* external_objects_java */
+/* 72 */                        #include "dynamic_gateways.h" /* external_objects_java */
+/* 73 */                                   #include "dynamic_gateways.h" /* MPI */
 
 
 /** table of interfaces **/
index 2a241a3..11c6af4 100644 (file)
@@ -1,15 +1,6 @@
 // ====================================================================
 // gui module initialisation file 
-// Copyright DIGITEO 2009
+// CopyrighDIGITEO 2009
 // ====================================================================
 //Load  functions libraries
-load('SCI/modules/mpi/macros/lib');
-// ====================================================================
-//add help chapter
-//add_module_help_chapter('mpi');
-// ====================================================================
-//add demos
-//pathdemos = pathconvert(SCI+"/modules/mpi/demos/mpi.dem.gateway.sce",%f,%t);
-//add_demo(gettext("mpi"),pathdemos);
-clear pathdemos;
-// ====================================================================
+//load('SCI/modules/mpi/macros/lib');
diff --git a/scilab/modules/mpi/examples/MPIHelloWorld.sci b/scilab/modules/mpi/examples/MPIHelloWorld.sci
new file mode 100644 (file)
index 0000000..04af78d
--- /dev/null
@@ -0,0 +1,38 @@
+function MPIHelloWorld()
+    ////////////
+    // PARALLEL / initialization, include MPI_Init time in measurement
+    ////////////
+    MPI_Init();                        // should have lambooted first
+    rnk =      MPI_Comm_rank();        // let it abort if it fails
+    sizeNodes =        MPI_Comm_size();
+
+    SLV = rnk;                 // handy shortcuts, master is rank 0
+    Master = ~ SLV;                    // slaves are all other
+
+    if Master
+
+        disp("We have "+string(sizeNodes) + " processors")
+        for slaveId = 1:sizeNodes-1
+            MPI_Send("== FROM Master == MPI_Send",slaveId)
+        end
+
+        for slaveId = 1:sizeNodes-1
+            tag=0
+            valueBack=MPI_Recv(slaveId, tag)
+            disp("<=> VALUE BACK <=> "+valueBack+ " from " +string(slaveId))
+
+        end
+    else
+        // slave
+        disp("Processor "+string(rnk))
+        rankSource=0
+        tag=0
+        value=MPI_Recv(rankSource, tag)
+        value="(Modified by the slave) "+value
+        MPI_Send(value,0)
+
+    end
+
+    MPI_Finalize()
+
+endfunction
diff --git a/scilab/modules/mpi/examples/MPIHelloWorldDouble.sci b/scilab/modules/mpi/examples/MPIHelloWorldDouble.sci
new file mode 100644 (file)
index 0000000..3cac2c0
--- /dev/null
@@ -0,0 +1,38 @@
+function MPIHelloWorldDouble()
+    ////////////
+    // PARALLEL / initialization, include MPI_Init time in measurement
+    ////////////
+    MPI_Init();                        // should have lambooted first
+    rnk =      MPI_Comm_rank();        // let it abort if it fails
+    sizeNodes =        MPI_Comm_size();
+
+    SLV = rnk;                 // handy shortcuts, master is rank 0
+    Master = ~ SLV;                    // slaves are all other
+
+    if Master
+
+        disp("We have "+string(sizeNodes) + " processors")
+        for slaveId = 1:sizeNodes-1
+            MPI_Send([23,42;68,62],slaveId)
+        end
+
+        for slaveId = 1:sizeNodes-1
+            tag=0
+            valueBack=MPI_Recv(slaveId, tag)
+            disp("<=> VALUE BACK <=> "+valueBack+ " from " +string(slaveId))
+
+        end
+    else
+        // slave
+        disp("Processor "+string(rnk))
+        rankSource=0
+        tag=0
+        value=MPI_Recv(rankSource, tag)
+        value="(Modified by the slave) "+value
+        MPI_Send(value,0)
+
+    end
+
+    MPI_Finalize()
+
+endfunction
diff --git a/scilab/modules/mpi/examples/MPIPi.sci b/scilab/modules/mpi/examples/MPIPi.sci
new file mode 100644 (file)
index 0000000..14b5ebe
--- /dev/null
@@ -0,0 +1,106 @@
+function MPIPi(N,mod)
+    // Pi_seq: Compute PI (sequential) by num.integr. of arctan(x) in [0..1]
+    //
+    // Pi_seq [ (N) ]
+    //
+    //  N      [1E7]   #subdivisions of the [0, 1] interval
+    // mod     ['s']   communication modality:  (s)end (r)educe
+    //  printed results struct contains
+    // pi      estimated pi value
+    // err     error
+    // time    from argument xmit to pi computed
+    //
+    // Examples:
+    //
+    //  octave:1> Pi_seq
+    //  results =
+    //  {
+    //    pi =  3.1416
+    //    err = -6.4837e-14
+    //    time =  2.7761
+    //  }
+    //
+
+    ////////////////////
+    // ArgChk //
+    ////////////////////
+    if argn(2)<1,      N=1E7;  end
+    if argn(2)<2,  mod="s";    end
+    if argn(2)>2,      error("usage MPIPi(N,mod)"); end
+    flag=0;
+    [%H,%ierr] = evstr(string(N));
+    flag=flag | size(N,"*")<>1 | %ierr<>0;
+    flag=flag  |   fix(N)~=N   |           N<1;
+    if flag,   error("usage MPIPi( <int> N>0, <char> mod==''s|r'' )"), end
+
+    ////////////////////////////////////
+    // Results struct //
+    ////////////////////////////////////
+    results.pi  =0;
+    results.err =0;
+    results.time=0;
+
+    ////////////
+    // PARALLEL / initialization, include MPI_Init time in measurement
+    ////////////
+    //  T=clock; /
+    ////////////
+    MPI_Init();                        // should have lambooted first
+    rnk =      MPI_Comm_rank();        // let it abort if it fails
+    siz =      MPI_Comm_size();
+
+    SLV = rnk;                 // handy shortcuts, master is rank 0
+    MST = ~ SLV;                       // slaves are all other
+
+    if MST
+        disp("Master here")
+    else
+        disp("Slave here")
+    end
+
+    ////////////
+    // PARALLEL / computation (depends on rank/size)
+    ////////////                       // vectorized code, equivalent to
+    width=1/N; lsum=0;         // for i=rnk:siz:N-1
+    i=rnk:siz:N-1;             //   x=(i+0.5)*width;
+    x=(i+0.5)*width;           //   lsum=lsum+4/(1+x^2);
+    lsum=sum(4 ./(1+x.^2));    // end
+    // mem-bound, N=1E7 => size(i)=8E7/siz (80MB!!!)
+    ////////////
+    // PARALLEL / reduction and finish
+    ////////////
+    select mod
+    case "s",                  TAG=7;  // Any tag would do
+        if SLV                         // All slaves send result back
+            MPI_Send(lsum,             0,TAG);
+        else                           // Here at master
+            Sum =lsum;                 // save local result
+            for slv=1:siz-1                    // collect in any order
+                //     MPI_Recv(lsum,MPI_ANY_SOURCE,TAG,MPI_COMM_WORLD);
+                MPI_Recv(lsum,TAG);
+                Sum = Sum + lsum;                      // and accumulate
+            end                                // order: slv or MPI_ANY_SOURCE
+        end
+    case "r",          Sum=0;          // reduction master = rank 0 @ WORLD
+        MPI_Reduce(lsum,Sum, MPI_SUM,  0,MPI_COMM_WORLD);
+    end
+
+    MPI_Finalize;
+
+    //////////////////////////////////////////////////////////////////
+    //results.time = etime(clock,T);   //
+    //////////////////////////////////////////////////////////////////
+    results.err  = Sum-%pi;
+    results.pi   = Sum // ;
+
+
+    //////////////////////////////
+    // FINAL CHECK //
+    //////////////////////////////
+    if abs(results.err)>5E-10
+        warning("pretty nice pi value! go fix it")
+    end
+    disp(results)
+endfunction
+
+
diff --git a/scilab/modules/mpi/examples/simple.sci b/scilab/modules/mpi/examples/simple.sci
new file mode 100644 (file)
index 0000000..908884f
--- /dev/null
@@ -0,0 +1,9 @@
+function simple()
+    disp("simple");
+    MPI_Init();
+    disp(MPI_Comm_rank());     // let it abort if it fails
+    disp(MPI_Comm_size());
+    disp("simple 2");
+    MPI_Finalize()
+
+endfunction
\ No newline at end of file
diff --git a/scilab/modules/mpi/macros/MPIHelloWorld.sci b/scilab/modules/mpi/macros/MPIHelloWorld.sci
deleted file mode 100644 (file)
index 770c7ee..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-function MPIHelloWorld()
-////////////
-// PARALLEL / initialization, include MPI_Init time in measurement
-////////////
-MPI_Init();                    // should have lambooted first
-rnk =  MPI_Comm_rank();        // let it abort if it fails
-sizeNodes =    MPI_Comm_size();
-
-    SLV = rnk;                 // handy shortcuts, master is rank 0
-    Master = ~ SLV;                    // slaves are all other
-
-if Master
-
-       disp("We have "+string(sizeNodes) + " processors")
-       for slaveId = 1:sizeNodes-1
-               MPI_Send("== FROM Master == MPI_Send",slaveId)
-       end
-
-       for slaveId = 1:sizeNodes-1
-               tag=0
-           valueBack=MPI_Recv(slaveId, tag)
-               disp("<=> VALUE BACK <=> "+valueBack+ " from " +string(slaveId))
-
-       end
-else
-// slave
-       disp("Processor "+string(rnk))
-       rankSource=0
-       tag=0
-    value=MPI_Recv(rankSource, tag)
-       value="(Modified by the slave) "+value
-       MPI_Send(value,0)
-
-end
-
-MPI_Finalize()
-
-endfunction
diff --git a/scilab/modules/mpi/macros/MPIHelloWorldDouble.sci b/scilab/modules/mpi/macros/MPIHelloWorldDouble.sci
deleted file mode 100644 (file)
index c520704..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-function MPIHelloWorldDouble()
-////////////
-// PARALLEL / initialization, include MPI_Init time in measurement
-////////////
-MPI_Init();                    // should have lambooted first
-rnk =  MPI_Comm_rank();        // let it abort if it fails
-sizeNodes =    MPI_Comm_size();
-
-SLV = rnk;                     // handy shortcuts, master is rank 0
-Master = ~ SLV;                        // slaves are all other
-
-if Master
-
-       disp("We have "+string(sizeNodes) + " processors")
-       for slaveId = 1:sizeNodes-1
-               MPI_Send([23,42;68,62],slaveId)
-       end
-
-       for slaveId = 1:sizeNodes-1
-               tag=0
-           valueBack=MPI_Recv(slaveId, tag)
-               disp("<=> VALUE BACK <=> "+valueBack+ " from " +string(slaveId))
-
-       end
-else
-// slave
-       disp("Processor "+string(rnk))
-       rankSource=0
-       tag=0
-    value=MPI_Recv(rankSource, tag)
-       value="(Modified by the slave) "+value
-       MPI_Send(value,0)
-
-end
-
-MPI_Finalize()
-
-endfunction
diff --git a/scilab/modules/mpi/macros/MPIPi.sci b/scilab/modules/mpi/macros/MPIPi.sci
deleted file mode 100644 (file)
index 30327c7..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-function MPIPi(N,mod)
-// Pi_seq: Compute PI (sequential) by num.integr. of arctan(x) in [0..1]
-//
-//     Pi_seq [ (N) ]
-//
-//  N  [1E7]   #subdivisions of the [0, 1] interval
-// mod ['s']   communication modality:  (s)end (r)educe
-//  printed results struct contains
-//     pi      estimated pi value
-//     err     error
-//     time    from argument xmit to pi computed
-//
-// Examples:
-//
-//  octave:1> Pi_seq
-//  results =
-//  {
-//    pi =  3.1416
-//    err = -6.4837e-14
-//    time =  2.7761
-//  }
-//
-
-////////////////////
-// ArgChk //
-////////////////////
-if argn(2)<1,  N=1E7;  end
-if argn(2)<2,  mod='s';        end
-if argn(2)>2,  error("usage MPIPi(N,mod)"); end
-flag=0;
-[%H,%ierr] = evstr(string(N));
-flag=flag | size(N,"*")<>1 | %ierr<>0;
-flag=flag  |   fix(N)~=N   |           N<1;
-if flag,       error("usage MPIPi( <int> N>0, <char> mod==''s|r'' )"), end
-
-////////////////////////////////////
-// Results struct //
-////////////////////////////////////
-results.pi  =0;
-results.err =0;
-results.time=0;
-
-////////////
-// PARALLEL / initialization, include MPI_Init time in measurement
-////////////
-//  T=clock; /
-////////////
-               MPI_Init();                     // should have lambooted first
-   rnk =       MPI_Comm_rank();        // let it abort if it fails
-   siz =       MPI_Comm_size();
-
-    SLV = rnk;                 // handy shortcuts, master is rank 0
-    MST = ~ SLV;                       // slaves are all other
-
-if MST 
-disp("Master here")
-else
-disp("Slave here")
-end
-
-////////////
-// PARALLEL / computation (depends on rank/size)
-////////////                   // vectorized code, equivalent to
-  width=1/N; lsum=0;           // for i=rnk:siz:N-1
-  i=rnk:siz:N-1;               //   x=(i+0.5)*width;
-  x=(i+0.5)*width;             //   lsum=lsum+4/(1+x^2);
-  lsum=sum(4 ./(1+x.^2));      // end
-                               // mem-bound, N=1E7 => size(i)=8E7/siz (80MB!!!)
-////////////
-// PARALLEL / reduction and finish
-////////////
-select mod
-  case 's',                    TAG=7;  // Any tag would do
-    if SLV                             // All slaves send result back
-       MPI_Send(lsum,             0,TAG);
-    else                               // Here at master
-           Sum =lsum;                  // save local result
-      for slv=1:siz-1                  // collect in any order
-//     MPI_Recv(lsum,MPI_ANY_SOURCE,TAG,MPI_COMM_WORLD);
-               MPI_Recv(lsum,TAG);
-           Sum = Sum + lsum;                   // and accumulate
-      end                              // order: slv or MPI_ANY_SOURCE
-    end
-  case 'r',            Sum=0;          // reduction master = rank 0 @ WORLD
-        MPI_Reduce(lsum,Sum, MPI_SUM,  0,MPI_COMM_WORLD);
-end
-
-               MPI_Finalize;
-
-//////////////////////////////////////////////////////////////////
-//results.time = etime(clock,T);       //
-//////////////////////////////////////////////////////////////////
-results.err  = Sum-%pi;
-results.pi   = Sum // ;
-
-
-//////////////////////////////
-// FINAL CHECK //
-//////////////////////////////
-  if abs(results.err)>5E-10
-    warning("pretty nice pi value! go fix it")
-  end
-disp(results)
-endfunction
-
-
diff --git a/scilab/modules/mpi/macros/buildmacros.bat b/scilab/modules/mpi/macros/buildmacros.bat
new file mode 100644 (file)
index 0000000..c4e35ec
--- /dev/null
@@ -0,0 +1 @@
+@..\..\..\bin\scilex -nwni -ns -e exec('buildmacros.sce');quit;
\ No newline at end of file
index a9cae7a..73252b1 100644 (file)
@@ -1,6 +1,14 @@
-if (isdef('genlib') == %f) then
-   exec(SCI+'/modules/functions/scripts/buildmacros/loadgenlib.sce');
-end
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2014 - Scilab Enterprises - Antoine ELIAS
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution.  The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
 
-genlib('mpilib','SCI/modules/mpi/macros',%f,%t); 
+//if ~isdef("genlib") then
+//    exec(SCI + "/modules/functions/scripts/buildmacros/loadgenlib.sce");
+//end
 
+//genlib("mpilib", "SCI/modules/mpi/macros", %f, %t);
diff --git a/scilab/modules/mpi/macros/cleanmacros.bat b/scilab/modules/mpi/macros/cleanmacros.bat
new file mode 100644 (file)
index 0000000..5079dfd
--- /dev/null
@@ -0,0 +1,3 @@
+@del *.bin 2>NUL
+@del lib 2>NUL
+@del names 2>NUL
\ No newline at end of file
diff --git a/scilab/modules/mpi/macros/simple.sci b/scilab/modules/mpi/macros/simple.sci
deleted file mode 100644 (file)
index 236a47e..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-function simple()
-  disp("simple");
-  MPI_Init();
-  disp(MPI_Comm_rank());       // let it abort if it fails
-  disp(MPI_Comm_size());
-  disp("simple 2");
-  MPI_Finalize()
-
-endfunction 
\ No newline at end of file
diff --git a/scilab/modules/mpi/mpi.iss b/scilab/modules/mpi/mpi.iss
new file mode 100644 (file)
index 0000000..de02a16
--- /dev/null
@@ -0,0 +1,38 @@
+;
+; Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+; Copyright (C) Scilab Enterprises - Antoine ELIAS
+;
+; This file must be used under the terms of the CeCILL.
+; This source file is licensed as described in the file COPYING, which
+; you should have received as part of this distribution.  The terms
+; are also available at
+; http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+;
+;--------------------------------------------------------------------------------------------------------------
+; Inno Setup Script (5.3 and more) for Scilab (UNICODE version required)
+;
+;--------------------------------------------------------------------------------------------------------------
+; MPI module
+;--------------------------------------------------------------------------------------------------------------
+;
+#define MPILIB "mpi"
+;
+Source: bin\{#MPILIB}.dll; DestDir: {app}\bin; Components: {#COMPN_MPI}
+Source: bin\{#MPILIB}.lib; DestDir: {app}\bin; Components: {#COMPN_MPI}
+;
+Source: modules\{#MPILIB}\etc\{#MPILIB}.quit; DestDir: {app}\modules\{#MPILIB}\etc; Components: {#COMPN_MPI}
+Source: modules\{#MPILIB}\etc\{#MPILIB}.start; DestDir: {app}\modules\{#MPILIB}\etc; Components: {#COMPN_MPI}
+;
+Source: modules\{#MPILIB}\includes\*.h; DestDir: {app}\modules\{#MPILIB}\includes; Components: {#COMPN_MPI}
+;
+Source: modules\{#MPILIB}\sci_gateway\{#MPILIB}_gateway.xml; DestDir: {app}\modules\{#MPILIB}\sci_gateway; Components: {#COMPN_MPI}
+;
+Source: modules\{#MPILIB}\macros\buildmacros.sce; DestDir: {app}\modules\{#MPILIB}\macros; Components: {#COMPN_MPI}
+Source: modules\{#MPILIB}\macros\buildmacros.bat; DestDir: {app}\modules\{#MPILIB}\macros; Components: {#COMPN_MPI}
+Source: modules\{#MPILIB}\macros\cleanmacros.bat; DestDir: {app}\modules\{#MPILIB}\macros; Components: {#COMPN_MPI}
+;
+Source: modules\{#MPILIB}\examples\*.*; DestDir: {app}\modules\{#MPILIB}\examples; Flags: recursesubdirs; Components: {#COMPN_MPI}
+;
+Source: modules\{#MPILIB}\tests\*.*; DestDir: {app}\modules\{#MPILIB}\tests; Flags: recursesubdirs; Components: {#COMPN_MPI} and {#COMPN_TESTS}
+;
+;--------------------------------------------------------------------------------------------------------------
index f30e0ce..dc4fae3 100644 (file)
@@ -80,7 +80,7 @@
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <ClCompile>
       <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>../../libs/openmpi/include;includes;src/c;../api_scilab/includes;../core/includes;../output_stream/includes;../localization/includes;../../libs/intl</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>../../libs/mpi/include;includes;src/c;../api_scilab/includes;../core/includes;../output_stream/includes;../localization/includes;../../libs/intl</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>FORDLL;_DEBUG;_WINDOWS;_USRDLL;MPI_EXPORTS;_CRT_SECURE_NO_DEPRECATE;OMPI_IMPORTS;OPAL_IMPORTS;ORTE_IMPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
       <WarningLevel>Level3</WarningLevel>
     </Midl>
     <ClCompile>
       <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>../../libs/openmpi/include;includes;src/c;../api_scilab/includes;../core/includes;../output_stream/includes;../localization/includes;../../libs/intl</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>../../libs/mpi/include;includes;src/c;../api_scilab/includes;../core/includes;../output_stream/includes;../localization/includes;../../libs/intl</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>FORDLL;_DEBUG;_WINDOWS;_USRDLL;MPI_EXPORTS;_CRT_SECURE_NO_DEPRECATE;OMPI_IMPORTS;OPAL_IMPORTS;ORTE_IMPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
       <WarningLevel>Level3</WarningLevel>
     <ClCompile>
       <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
       <WholeProgramOptimization>false</WholeProgramOptimization>
-      <AdditionalIncludeDirectories>../../libs/openmpi/include;includes;src/c;../api_scilab/includes;../core/includes;../output_stream/includes;../localization/includes;../../libs/intl</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>../../libs/mpi/include;includes;src/c;../api_scilab/includes;../core/includes;../output_stream/includes;../localization/includes;../../libs/intl</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>FORDLL;NDEBUG;_WINDOWS;_USRDLL;MPI_EXPORTS;_CRT_SECURE_NO_DEPRECATE;OMPI_IMPORTS;OPAL_IMPORTS;ORTE_IMPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <StringPooling>true</StringPooling>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
     <ClCompile>
       <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
       <WholeProgramOptimization>false</WholeProgramOptimization>
-      <AdditionalIncludeDirectories>../../libs/openmpi/include;includes;src/c;../api_scilab/includes;../core/includes;../output_stream/includes;../localization/includes;../../libs/intl</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>../../libs/mpi/include;includes;src/c;../api_scilab/includes;../core/includes;../output_stream/includes;../localization/includes;../../libs/intl</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>FORDLL;NDEBUG;_WINDOWS;_USRDLL;MPI_EXPORTS;_CRT_SECURE_NO_DEPRECATE;OMPI_IMPORTS;OPAL_IMPORTS;ORTE_IMPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <StringPooling>true</StringPooling>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
index 899c8d9..3f07e2e 100644 (file)
@@ -27,7 +27,6 @@ static gw_generic_table Tab[] =
     {sci_mpi_irecv, "MPI_Irecv"},
     {sci_mpi_isend, "MPI_Isend"},
     {sci_mpi_wait, "MPI_Wait"}
-
 };
 /*-----------------------------------------------------------------------------------*/
 int gw_mpi(void)
index bfc0ebd..276218a 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <!DOCTYPE GATEWAY SYSTEM "../../functions/xml/gateway.dtd">
-<GATEWAY name="sylvestre">
+<GATEWAY name="mpi">
     <!-- =================== -->
     <!--
  Scilab
index ded04ab..f65a5da 100644 (file)
@@ -15,7 +15,8 @@
 #pragma comment(lib,"../../bin/libintl.lib")
 #pragma comment(lib,"../../bin/blasplus.lib")
 
-#pragma comment(lib,"../../bin/libmpi.lib")
+//MS MPI
+#pragma comment(lib,"../../libs/mpi/lib/msmpi.lib")
 
 
 /*--------------------------------------------------------------------------*/
index 76f4a00..ce554df 100644 (file)
@@ -150,6 +150,11 @@ begin
         ModulesXmlFileLines[i] := '<module name="modules_manager" activate="yes"/>'; i := i + 1;
     end;
 
+    if IsComponentSelected( ExpandConstant('{#COMPN_MPI}') ) then
+    begin
+        ModulesXmlFileLines[i] := '<module name="mpi" activate="yes"/>'; i := i + 1;
+    end;
+
     ModulesXmlFileLines[i] := '</modules>'; i := i + 1;
 
     Result := SaveStringsToFile(ModuleFileName, ModulesXmlFileLines, False);
index ab17438..4ccbfbc 100644 (file)
@@ -57,6 +57,9 @@ Name: {#COMPN_MODULES_MANAGER}; Description: {cm:DescriptionModulesManager}; Typ
 Name: {#COMPN_TOOLBOX_SKELETON}; Description: {cm:DescriptionTlbxSkeleton}; Types: full;
 Name: {#COMPN_TESTS}; Description: {cm:DescriptionTests}; Types: full; ExtraDiskSpaceRequired: {#TESTS_SIZE}
 
+#define COMPN_MPI 'MPI'
+Name: {#COMPN_MPI}; Description: {cm:DescriptionMPI}; Types: full;
+
 #define COMPN_TCLSCI 'tclsci'
 Name: {#COMPN_TCLSCI}; Description: {cm:DescriptionTclTK}; Types: full;
 ;-------------------------------------------------------------------------------
index ffb65f7..1ce6d93 100644 (file)
@@ -54,6 +54,7 @@ en_US.DescriptionXcos = Xcos
 en_US.DescriptionParallel = Parallel Computing with Scilab
 en_US.DescriptionModulesManager = Tools for management of extern modules
 en_US.DescriptionModuleJVM = Graphic User Interface
+en_US.DescriptionMPI = MPI ( based on Microsoft HPC Pack 2012 R2 )
 ;
 en_US.ConsoleIconName = Scilab Console
 ;
index d494dd8..a779c1b 100644 (file)
@@ -96,5 +96,6 @@
 #include BinariesSourcePath + "\modules\xml\xml.iss"
 #include BinariesSourcePath + "\modules\preferences\preferences.iss"
 #include BinariesSourcePath + "\modules\graphic_objects\graphic_objects.iss"
+#include BinariesSourcePath + "\modules\mpi\mpi.iss"
 ;-------------------------------------------------------------------------------
 ;
index c911622..9d03f0a 100644 (file)
@@ -53,6 +53,7 @@ fr_FR.DescriptionSciNotes = Scinotes : 
 fr_FR.DescriptionXcos = Xcos
 fr_FR.DescriptionModulesManager = Outils pour créer des modules externes
 fr_FR.DescriptionModuleJVM = Interface graphique
+fr_FR.DescriptionMPI = MPI ( basé sur Microsoft HPC Pack 2012 R2 )
 ;
 fr_FR.ConsoleIconName = Console Scilab
 ;