<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 14 (filtered medium)">
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
h1
        {mso-style-priority:9;
        mso-style-link:"Heading 1 Char";
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:24.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
span.Heading1Char
        {mso-style-name:"Heading 1 Char";
        mso-style-priority:9;
        mso-style-link:"Heading 1";
        font-family:"Times New Roman","serif";
        font-weight:bold;}
span.apple-converted-space
        {mso-style-name:apple-converted-space;}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:"Courier New";}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri","sans-serif";}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:1375502245;
        mso-list-template-ids:1889928270;}
@list l0:level1
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level2
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:1.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:"Courier New";
        mso-bidi-font-family:"Times New Roman";}
@list l0:level3
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:1.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l0:level4
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:2.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l0:level5
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:2.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l0:level6
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:3.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l0:level7
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:3.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l0:level8
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:4.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l0:level9
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:4.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal">Hi Viswanath,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I have some opportunity to work with both boost and mpi.<o:p></o:p></p>
<p class="MsoNormal">Just wanted to mention that boost::mpi::environment calls MPI_Init internally.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Your program does not work since you have declared boost::mpi::environment as a global object and  then you have also called MPI_Init.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Either you remove the global objects (env) or you initialize that inside main.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Here is the snippet of the program :<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">int main(int argc, char *argv[])<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">{<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">  mpi::environment env(argc, argv, boost::mpi::threading::multiple);<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">  mpi::communicator world;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">  if (world.rank() ==0) {<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">    cout << "#Master: Thread support :" <<  env.thread_level() <<endl;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">  }<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">}<o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Thanks,<br>
Hirak<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><b><span style="font-size:13.5pt;color:black">Balaji, Pavan</span></b><span class="apple-converted-space"><span style="font-size:13.5pt;color:black;background:white"> </span></span><a href="mailto:discuss%40mpich.org?Subject=Re%3A%20%5Bmpich-discuss%5D%20Nemesis%20engine%20query%20by%20Viswanath&In-Reply-To=%3C8A837C95-3617-4F5C-9ED1-DFA6840913A5%40anl.gov%3E" title="[mpich-discuss] Nemesis engine query by Viswanath"><span style="font-size:13.5pt">balaji
 at anl.gov</span><span class="apple-converted-space"><span style="font-size:13.5pt;color:blue;text-decoration:none"> </span></span></a><span style="font-size:13.5pt;color:black"><br>
<i>Mon Aug 3 10:48:20 CDT 2015</i></span><o:p></o:p></p>
<ul type="disc">
<li class="MsoNormal" style="color:black;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo1">
<span style="font-size:13.5pt">Previous message:<span class="apple-converted-space"> </span><a href="http://lists.mpich.org/pipermail/discuss/2015-August/004112.html">[mpich-discuss] Nemesis engine query by Viswanath</a><o:p></o:p></span></li><li class="MsoNormal" style="color:black;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo1">
<span style="font-size:13.5pt">Next message:<span class="apple-converted-space"> </span><a href="http://lists.mpich.org/pipermail/discuss/2015-August/004113.html">[mpich-discuss] question about valgrind errors I am getting</a><o:p></o:p></span></li><li class="MsoNormal" style="color:black;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo1">
<b><span style="font-size:13.5pt">Messages sorted by:</span></b><span class="apple-converted-space"><span style="font-size:13.5pt"> </span></span><span style="font-size:13.5pt"><a href="http://lists.mpich.org/pipermail/discuss/2015-August/date.html#4114">[
 date ]</a><span class="apple-converted-space"> </span><a href="http://lists.mpich.org/pipermail/discuss/2015-August/thread.html#4114">[ thread ]</a><span class="apple-converted-space"> </span><a href="http://lists.mpich.org/pipermail/discuss/2015-August/subject.html#4114">[
 subject ]</a><span class="apple-converted-space"> </span><a href="http://lists.mpich.org/pipermail/discuss/2015-August/author.html#4114">[ author ]</a><o:p></o:p></span></li></ul>
<div class="MsoNormal" align="center" style="text-align:center">
<hr size="3" width="100%" noshade="" style="color:black" align="center">
</div>
<pre style="white-space:pre-wrap;orphans: auto;text-align:start;widows: 1;-webkit-text-stroke-width: 0px;word-spacing:0px"><span style="color:black">I first tried your program after removing the boost declarations, and it worked correctly:<o:p></o:p></span></pre>
<pre><span style="color:black"><o:p> </o:p></span></pre>
<pre><span style="color:black">#include<cstdio><o:p></o:p></span></pre>
<pre><span style="color:black">#include<cstdlib><o:p></o:p></span></pre>
<pre><span style="color:black">#include<cstring><o:p></o:p></span></pre>
<pre><span style="color:black">#include<iostream><o:p></o:p></span></pre>
<pre><span style="color:black">#include<vector><o:p></o:p></span></pre>
<pre><span style="color:black">#include<pthread.h><o:p></o:p></span></pre>
<pre><span style="color:black">#include<mpi.h><o:p></o:p></span></pre>
<pre><span style="color:black"><o:p> </o:p></span></pre>
<pre><span style="color:black">using namespace std;<o:p></o:p></span></pre>
<pre><span style="color:black"><o:p> </o:p></span></pre>
<pre><span style="color:black">#define MASTER 0<o:p></o:p></span></pre>
<pre><span style="color:black"><o:p> </o:p></span></pre>
<pre><span style="color:black">int main(int argc, char *argv[])<o:p></o:p></span></pre>
<pre><span style="color:black">{<o:p></o:p></span></pre>
<pre><span style="color:black">    int rankID, numprocessors,provided;<o:p></o:p></span></pre>
<pre><span style="color:black">    int returnvalue = MPI_Init_thread(&argc,&argv,MPI_THREAD_MULTIPLE,&provided);<o:p></o:p></span></pre>
<pre><span style="color:black"><o:p> </o:p></span></pre>
<pre><span style="color:black">    printf("\n VALUE OF PROVIDED IS %d",provided);<o:p></o:p></span></pre>
<pre><span style="color:black">    printf("\n VALUE OF MPI_THREAD_MULTIPLE IS %d",MPI_THREAD_MULTIPLE);<o:p></o:p></span></pre>
<pre><span style="color:black">    if(provided < MPI_THREAD_MULTIPLE)<o:p></o:p></span></pre>
<pre><span style="color:black">    {<o:p></o:p></span></pre>
<pre><span style="color:black">        printf("\n THREAD LIBRARY DOESN'T HAVE MULTITHREADING SUPPORT:");<o:p></o:p></span></pre>
<pre><span style="color:black">    }<o:p></o:p></span></pre>
<pre><span style="color:black"><o:p> </o:p></span></pre>
<pre><span style="color:black">    MPI_Finalize();<o:p></o:p></span></pre>
<pre><span style="color:black"><o:p> </o:p></span></pre>
<pre><span style="color:black">    return 0;<o:p></o:p></span></pre>
<pre><span style="color:black">}<o:p></o:p></span></pre>
<pre><span style="color:black"><o:p> </o:p></span></pre>
<pre><span style="color:black">With respect to Boost, yes, MPICH works correctly with Boost.  But it is possible that something is not setup correctly in your installation of Boost.  Did you make sure you are linking with the correct MPI library?<o:p></o:p></span></pre>
<pre><span style="color:black"><o:p> </o:p></span></pre>
<pre><span style="color:black">  -- Pavan<o:p></o:p></span></pre>
<pre><span style="color:black"><o:p> </o:p></span></pre>
<pre><span style="color:black">From: Viswanath Krishnamurthy<o:p></o:p></span></pre>
<pre><span style="color:black">Reply-To: "<a href="https://lists.mpich.org/mailman/listinfo/discuss">discuss at mpich.org</a><mailto:<a href="https://lists.mpich.org/mailman/listinfo/discuss">discuss at mpich.org</a>>"<o:p></o:p></span></pre>
<pre><span style="color:black">Date: Monday, August 3, 2015 at 8:28 AM<o:p></o:p></span></pre>
<pre><span style="color:black">To: "<a href="https://lists.mpich.org/mailman/listinfo/discuss">discuss at mpich.org</a><mailto:<a href="https://lists.mpich.org/mailman/listinfo/discuss">discuss at mpich.org</a>>"<o:p></o:p></span></pre>
<pre><span style="color:black">Subject: Re: [mpich-discuss] Nemesis engine query by Viswanath<o:p></o:p></span></pre>
<pre><span style="color:black"><o:p> </o:p></span></pre>
<pre><span style="color:black">Hi,<o:p></o:p></span></pre>
<pre><span style="color:black"><o:p> </o:p></span></pre>
<pre><span style="color:black">Thanks for the previous post on MPI_Init_thread. Here is the sample program which failed<o:p></o:p></span></pre>
<pre><span style="color:black"><o:p> </o:p></span></pre>
<pre><span style="color:black"><o:p> </o:p></span></pre>
<pre><span style="color:black">#include<cstdio><o:p></o:p></span></pre>
<pre><span style="color:black">#include<cstdlib><o:p></o:p></span></pre>
<pre><span style="color:black">#include<cstring><o:p></o:p></span></pre>
<pre><span style="color:black">#include<iostream><o:p></o:p></span></pre>
<pre><span style="color:black">#include<vector><o:p></o:p></span></pre>
<pre><span style="color:black">#include<pthread.h><o:p></o:p></span></pre>
<pre><span style="color:black">#include<mpi.h><o:p></o:p></span></pre>
<pre><span style="color:black">#include <boost/mpi/environment.hpp><o:p></o:p></span></pre>
<pre><span style="color:black">#include <boost/mpi/communicator.hpp><o:p></o:p></span></pre>
<pre><span style="color:black">#include <boost/serialization/vector.hpp><o:p></o:p></span></pre>
<pre><span style="color:black">#include <boost/mpi.hpp><o:p></o:p></span></pre>
<pre><span style="color:black">using namespace std;<o:p></o:p></span></pre>
<pre><span style="color:black">using namespace boost::serialization;<o:p></o:p></span></pre>
<pre><span style="color:black">using namespace boost::archive;<o:p></o:p></span></pre>
<pre><span style="color:black">namespace mpi = boost::mpi; // using mpi library under boost namespace<o:p></o:p></span></pre>
<pre><span style="color:black">mpi::environment env;<o:p></o:p></span></pre>
<pre><span style="color:black">mpi::communicator world;<o:p></o:p></span></pre>
<pre><span style="color:black">#define MASTER 0<o:p></o:p></span></pre>
<pre><span style="color:black">// Aim of this program is to print the Rank of each process and size of number of MPI Run<o:p></o:p></span></pre>
<pre><span style="color:black">int main(int argc, char *argv[])<o:p></o:p></span></pre>
<pre><span style="color:black">{<o:p></o:p></span></pre>
<pre><span style="color:black">// Declarations and prototypes<o:p></o:p></span></pre>
<pre><span style="color:black">int rankID, numprocessors,provided;<o:p></o:p></span></pre>
<pre><span style="color:black">// Any serial code goes in here<o:p></o:p></span></pre>
<pre><span style="color:black">// Initialize the MPI Environment over here<o:p></o:p></span></pre>
<pre><span style="color:black">//MPI_Init(&argc,&argv);<o:p></o:p></span></pre>
<pre><span style="color:black">int returnvalue = MPI_Init_thread(&argc,&argv,MPI_THREAD_MULTIPLE,&provided);<o:p></o:p></span></pre>
<pre><span style="color:black">       printf("\n VALUE OF PROVIDED IS %d",provided);<o:p></o:p></span></pre>
<pre><span style="color:black">printf("\n VALUE OF MPI_THREAD_MULTIPLE IS %d",MPI_THREAD_MULTIPLE);<o:p></o:p></span></pre>
<pre><span style="color:black">if(provided < MPI_THREAD_MULTIPLE)<o:p></o:p></span></pre>
<pre><span style="color:black">        {<o:p></o:p></span></pre>
<pre><span style="color:black">                printf("\n THREAD LIBRARY DOESN'T HAVE MULTITHREADING SUPPORT:");<o:p></o:p></span></pre>
<pre><span style="color:black">                //exit(1);<o:p></o:p></span></pre>
<pre><span style="color:black">        }<o:p></o:p></span></pre>
<pre><span style="color:black"><o:p> </o:p></span></pre>
<pre><span style="color:black">// Terminate the MPI Environment<o:p></o:p></span></pre>
<pre><span style="color:black">MPI_Finalize();<o:p></o:p></span></pre>
<pre><span style="color:black"><o:p> </o:p></span></pre>
<pre><span style="color:black">}<o:p></o:p></span></pre>
<pre><span style="color:black"><o:p> </o:p></span></pre>
<pre><span style="color:black">Error got:<o:p></o:p></span></pre>
<pre><span style="color:black"><o:p> </o:p></span></pre>
<pre><span style="color:black">Assertion failed in file /home/viswa/libraries/mpich-3.1.4/src/include/mpiimplthreadpost.h at line 163: depth > 0 && depth < 10<o:p></o:p></span></pre>
<pre><span style="color:black">internal ABORT - process 1<o:p></o:p></span></pre>
<pre><span style="color:black">internal ABORT - process 0<o:p></o:p></span></pre>
<pre><span style="color:black"><o:p> </o:p></span></pre>
<pre><span style="color:black">I tried to use boost library in my MPI Code. Is MPI_Init_thread<o:p></o:p></span></pre>
<pre><span style="color:black">designed to work with Boost libraries?. If not, please suggest an alternative to<o:p></o:p></span></pre>
<pre><span style="color:black">send vectors(STL types) using MPI.<o:p></o:p></span></pre>
<pre><span style="color:black"><o:p> </o:p></span></pre>
<pre><span style="color:black">MPI version - 3.1.4<o:p></o:p></span></pre>
<pre><span style="color:black"><o:p> </o:p></span></pre>
<pre><span style="color:black">CPU Info:<o:p></o:p></span></pre>
<pre><span style="color:black"><o:p> </o:p></span></pre>
<pre><span style="color:black">Architecture:          x86_64<o:p></o:p></span></pre>
<pre><span style="color:black">CPU op-mode(s):        32-bit, 64-bit<o:p></o:p></span></pre>
<pre><span style="color:black">Byte Order:            Little Endian<o:p></o:p></span></pre>
<pre><span style="color:black">CPU(s):                8<o:p></o:p></span></pre>
<pre><span style="color:black">On-line CPU(s) list:   0-7<o:p></o:p></span></pre>
<pre><span style="color:black">Thread(s) per core:    1<o:p></o:p></span></pre>
<pre><span style="color:black">Core(s) per socket:    4<o:p></o:p></span></pre>
<pre><span style="color:black">Socket(s):             2<o:p></o:p></span></pre>
<pre><span style="color:black">NUMA node(s):          1<o:p></o:p></span></pre>
<pre><span style="color:black">Vendor ID:             GenuineIntel<o:p></o:p></span></pre>
<pre><span style="color:black">CPU family:            6<o:p></o:p></span></pre>
<pre><span style="color:black">Model:                 44<o:p></o:p></span></pre>
<pre><span style="color:black">Stepping:              2<o:p></o:p></span></pre>
<pre><span style="color:black">CPU MHz:               3458.000<o:p></o:p></span></pre>
<pre><span style="color:black">BogoMIPS:              6916.00<o:p></o:p></span></pre>
<pre><span style="color:black">Hypervisor vendor:     VMware<o:p></o:p></span></pre>
<pre><span style="color:black">Virtualization type:   full<o:p></o:p></span></pre>
<pre><span style="color:black">L1d cache:             32K<o:p></o:p></span></pre>
<pre><span style="color:black">L1i cache:             32K<o:p></o:p></span></pre>
<pre><span style="color:black">L2 cache:              256K<o:p></o:p></span></pre>
<pre><span style="color:black">L3 cache:              12288K<o:p></o:p></span></pre>
<pre><span style="color:black">NUMA node0 CPU(s):     0-7<o:p></o:p></span></pre>
<pre><span style="color:black"><o:p> </o:p></span></pre>
<pre><span style="color:black"><o:p> </o:p></span></pre>
<pre><span style="color:black">-------------- next part --------------<o:p></o:p></span></pre>
<pre><span style="color:black">An HTML attachment was scrubbed...<o:p></o:p></span></pre>
<pre><span style="color:black">URL: <<a href="http://lists.mpich.org/pipermail/discuss/attachments/20150803/43b31c11/attachment.html">http://lists.mpich.org/pipermail/discuss/attachments/20150803/43b31c11/attachment.html</a>><o:p></o:p></span></pre>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</body>
</html>