WinMumps Code
Visual Studio project and solution files for building MUMPS
Brought to you by:
mathieu_gontier,
oeloio
File | Date | Author | Commit |
---|---|---|---|
templates | 2008-09-22 | mathieu_gontier | [r1] Build MUMPS-4.8 on Windows |
VERSION | 2008-09-22 | mathieu_gontier | [r2] |
readme.html | 2008-09-22 | mathieu_gontier | [r1] Build MUMPS-4.8 on Windows |
winmumps_generator.py | 2008-09-22 | mathieu_gontier | [r1] Build MUMPS-4.8 on Windows |
<html> <style type="text/css"> .indented{padding-left: 25pt;padding-rig;} .verb{ font-size:10pt; font-family:FONT-FAMILY: courrier, verdana, arial, "ms sans serif", monospaced} .TITLE{ FONT-SIZE: 22px; MARGIN: 8px 10px; COLOR:#002D7C; LINE-HEIGHT: 26px; FONT-FAMILY: tahoma,geneva, verdana, arial, "ms sans serif", sans-serif} P { FONT-SIZE: 12px; MARGIN: 10px; COLOR: #444; LINE-HEIGHT: 20px; FONT-FAMILY: geneva, verdana, arial, "ms sans serif", sans-serif} H1 { FONT-SIZE: 18px; MARGIN: 8px 10px; COLOR: #002D7C; LINE-HEIGHT: 26px; FONT-FAMILY: tahoma,geneva, verdana, arial, "ms sans serif", sans-serif} H2 { FONT-SIZE: 16px; MARGIN: 8px 10px; COLOR: #FF9D46; LINE-HEIGHT: 24px; FONT-FAMILY: tahoma,geneva, verdana, arial, "ms sans serif", sans-serif} H3 { FONT-WEIGHT: bold; FONT-SIZE: 14px; MARGIN: 8px 10px; COLOR: #369; LINE-HEIGHT: 22px; FONT-FAMILY: geneva, verdana, arial, "ms sans serif", sans-serif} UL { PADDING-LEFT: 20px; FONT-SIZE: 12px; COLOR: #444; LINE-HEIGHT: 20px; PADDING-TOP: 5px; FONT-FAMILY: geneva, verdana, arial, "ms sans serif", sans-serif} OL { PADDING-LEFT: 20px; FONT-SIZE: 12px; COLOR: #444; LINE-HEIGHT: 20px; PADDING-TOP: 5px; FONT-FAMILY: geneva, verdana, arial, "ms sans serif", sans-serif} LI { PADDING-LEFT: 0px; FONT-SIZE: 12px; COLOR: #444; LINE-HEIGHT: 20px; PADDING-TOP: 5px; FONT-FAMILY: geneva, verdana, arial, "ms sans serif", sans-serif} LI.h1 { FONT-SIZE: 20px; MARGIN: 8px 10px; COLOR: #002D7C; LINE-HEIGHT: 26px; FONT-FAMILY: tahoma,geneva, verdana, arial, "ms sans serif", sans-serif} LI.h2{ FONT-SIZE: 18px; MARGIN: 8px 10px; COLOR: #FF9D46; LINE-HEIGHT: 24px; FONT-FAMILY: tahoma,geneva, verdana, arial, "ms sans serif", sans-serif} A:link { FONT-WEIGHT: bold; COLOR: #369; TEXT-DECORATION: underline} A:visited { FONT-WEIGHT: bold; COLOR: #58b; TEXT-DECORATION: underline} A:active { FONT-WEIGHT: bold; COLOR: #69c; TEXT-DECORATION: underline} A:hover { FONT-WEIGHT: bold; COLOR: #f90; TEXT-DECORATION: underline} B { FONT-WEIGHT: bold} STRONG { FONT-WEIGHT: bold} BODY { SCROLLBAR-FACE-COLOR: #369; SCROLLBAR-HIGHLIGHT-COLOR: #69c; SCROLLBAR-SHADOW-COLOR: #036; SCROLLBAR-ARROW-COLOR: #f90; SCROLLBAR-BASE-COLOR: #036; scrollbar-3d-light-color: #369; scrollbar-dark-shadow-color: #036} </style> <body> <title>WinMUMPS</title></head><body> <h1>WinMUMPS</h1> <p><b>WinMumps</b> is a set of project files (generated by a <i>Python</i> script) allowing to build <i>MUMPS</i> on Windows 32- and 64-bits. This project is developed and currently used by <a href="http://www.fft.be">Free Field Technologies</a>. So, please feel free to modify it if necessary. For more information, you can send a mail to <a href="mailto:mathieu.gontier@fft.be">mathieu.gontier@fft.be</a> or on the <i>MUMPS</i> mailing list <a href="mailto:mumps-users@listes.ens-lyon.fr">mumps-users@listes.ens-lyon.fr</a> </p> <ul> </ul><h2>Requirements</h2><ul> </ul><h3>MUMPS</h3><ul> <p>MUMPS-4.8.0 or latter.</p> </ul><h3>Python</h3><ul> <p>Python-2.5.1 or latter.</p> </ul><h3>Compilation</h3><ul> <h4>C/C++ build environment:</h4> <p> <ul> <li><i>either</i> Visual Studio 2003 Professional <i>- Visual Studio 7 (not tested)</i>;</li> <li><i>or</i> Visual Studio 2005 Professional <i>- Visual Studio 8</i>;</li> <li><i>or</i> Visual Studio 2008 Professional <i>- Visual Studio 9</i>.</li> </ul> </p> <h4>Fortran build environment:</h4> <p> <ul> <li>Intel Fortran compiler 9 or later</li> </ul> </p> </ul><h3>Parallelism</h3><ul> <p><i>WinMumps</i> is tested with the following MPI libraries: <ul> <li>MPICH-1.2.5 for Windows 32-bits;</li> <li>MPICH2-1.0.7 for Windows 64-bits;</li> <li>MSMPI for Windows 64-bits.</li> </ul></p> <p> The MPI library installation directory must be specified on the command line. In other words, all MPI libraries for Windows should work with WinMumps. (The header files of the specified MPI libraries will be used in all <i>MUMPS</i>, even in the <i>libseq</i> contained in <i>MUMPS</i>.) </p> <p>Moreover, <i>MUMPS</i> parallel requires BLACS and SCALAPACK. <i>WinMumps</i> does not provide project files to build them anymore: use the libraries provided by <i>MKL</i> or any mathematical library. </p> </ul><h2>How to use WinMumps</h2><ul> <p>The <i>WinMumps</i> directory can be copied anywhere on a Windows machine on which the sources of <i>MUMPS</i> has been copied. <i>WinMumps</i> contains: <ul> <li>this documentation <tt>readme.html</tt>;</li> <li>the <i>Python</i> script <tt>winmumps_generator.py</tt>;</li> <li>the directory <tt>templates</tt> containing the templates on which project files will be written</li> </ul></p> <p>To generate the project files in order to build <i>MUMPS</i>, <tt>winmumps_generator.py</tt> must be launched through a <i>Python</i> interpreter. Running the command <tt>python winmumps_generator.py --help</tt> will give all the required options. </p> </ul><h2>Examples</h2><ul> </ul><h3>Genarate two sets of projects</h3><ul> <p>Two sets of projects can be generated: <ul> <li>to build sequential libraries: <br><tt>python .\WinMumps-4.8\winmumps_generator.py --mumpsdir=.\MUMPS_4.8.0 --winmumps=. --visualstudio=9 --intelfortran=9.1 --symbols=FFT_BUILDSYSTEM_GENERATOR --metis</tt> <ul> In that case, a sequential application based on <i>MUMPS</i> must be linked with: <li><tt>[sdcz]mumps_c.lib</tt> built by the Visual Studio project <i>[sdcz]mumps_c.vcproj</i>;</li> <li><tt>[sdcz]mumps_fortran.lib</tt> built by the Visual Studio project <i>[sdcz]mumps_fortran.vcproj</i>;</li> <li><tt>mumps_common_c.lib</tt> built by the Visual Studio project <i>mumps_common_c.vcproj</i>;</li> <li><tt>pord_c.lib</tt> built by the Visual Studio project <i>pord_c.vcproj</i>;</li> <li><tt>libseq_c.lib</tt> built by the Visual Studio project <i>libseq_c.vcproj</i>;</li> <li><tt>libseq_fortran.lib</tt> built by the Visual Studio project <i>libseq_fortran.vcproj</i>.</li> Additionally, if <i>MKL-10</i> is used on a Windows 64-bits platform equiped with <i>MSMPI</i>, the following libraries must be added at the link time: <tt>libguide40.lib</tt>, <tt>mkl_intel_thread.lib</tt>, <tt>mkl_core.lib</tt>, <tt>mkl_msmpi.lib</tt> and <tt>mkl_intel_lp64.lib</tt>. </ul></li> <li>to build parallel libraries: <br><tt>python .\WinMumps-4.8\winmumps_generator.py --mumpsdir=.\MUMPS_4.8.0 --winmumps=. --visualstudio=9 --intelfortran=9.1 --symbols=FFT_BUILDSYSTEM_GENERATOR --metis --mpidir="C:\Program Files\Microsoft Compute Cluster Pack" --postfix=_mp</tt> <ul> In that case, a parallel application based on <i>MUMPS</i> must be linked with: <li><tt>[sdcz]mumps_c_mp.lib</tt> built by the Visual Studio project <i>[sdcz]mumps_c_mp.vcproj</i>;</li> <li><tt>[sdcz]mumps_fortran_mp.lib</tt> built by the Visual Studio project <i>[sdcz]mumps_fortran_mp.vcproj</i>;</li> <li><tt>mumps_common_c_mp.lib</tt> built by the Visual Studio project <i>mumps_common_c_mp.vcproj</i>;</li> <li><tt>pord_c_mp.lib</tt> built by the Visual Studio project <i>pord_c_mp.vcproj</i>.</li> Additionally, if <i>MKL-10</i> is used on a Windows 64-bits platform equiped with <i>MSMPI</i>, the following libraries must be added at the link time: <tt>libguide40.lib</tt>, <tt>mkl_intel_thread.lib</tt>, <tt>mkl_core.lib</tt>, <tt>mkl_msmpi.lib</tt>, <tt>mkl_intel_lp64.lib</tt>, <tt>mkl_scalapack_lp64.lib</tt>, <tt>mkl_blacs_msmpi_lp64.lib</tt> </ul></li> </ul> </p> <p> </ul><h3>Genarate one set of projects</h3><ul> <p>Another way is generate a single set of projects based on a MPI library, and link the final application with either the libraries provided by the MPI package, or a fake MPI library: <br><tt>python .\WinMumps-4.8\winmumps_generator.py --mumpsdir=.\MUMPS_4.8.0 --winmumps=. --visualstudio=9 --intelfortran=9.1 --symbols=FFT_BUILDSYSTEM_GENERATOR --metis --postfix=_generic</tt></li> </p> <p>The <i>MKL-10</i>libraries are still required at the link time (BLACS and SCALAPACK only for a parallel binary) and either a <i>MPI</i> library is required for a parallel binary, or a fake MPI one for a sequential application. </p> </ul><h2>Todo list</h2><ul> <ul> <li>Implement the <i>__declspec(import) / __declspec(export)</i> mechanism in the MUMPS core (Fortran interface).</li> <li>Implement the <i>__declspec(import) / __declspec(export)</i> mechanism in the C-MUMPS interface.</li> <li>Write project files for shared library generation.</li> </ul> </ul><h2>Links</h2><ul> <li><a href="http://graal.ens-lyon.fr/MUMPS/">MUMPS web site</a></li> <li><a href="http://www.fft.be/">Free Field Technologies web site</a></li> <li><a href="http://www-unix.mcs.anl.gov/mpi/mpich1/">MPICH web site</a></li> <li><a href="http://www-unix.mcs.anl.gov/mpi/mpich2/">MPICH2 web site</a></li> <li><a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=d8462378-2f68-409d-9cb3-02312bc23bfd&displaylang=en">Microsoft Compute Cluster Pack</a></li> <li><a href="http://www.netlib.org/blacs/">BLACS web site</a></li> <li><a href="http://www.netlib.org/scalapack/">SCALAPACK web site</a></li> <li><a href="http://www.python.org/">Python web site</a></li> </ul> </body> </html>