<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Hey Dave, in Intel® MPI Library</title>
    <link>https://community.intel.com/t5/Intel-MPI-Library/Trying-to-use-I-MPI-PIN-DOMAIN-socket/m-p/1061328#M4535</link>
    <description>&lt;P&gt;Hey Dave,&lt;/P&gt;

&lt;P&gt;If I understand correctly, you want to specify how many MPI ranks to run on a single node.&amp;nbsp; By default, Intel MPI will use up all cores available on a machine before going to the next one on the list.&amp;nbsp; That's why the 4 MPI ranks you start are all put on the same host.&lt;/P&gt;

&lt;P&gt;To overwrite this behavior, use the -perhost option for mpirun or set the I_MPI_PERHOST environment variable to an integer value.&amp;nbsp; In the run script you provide, you can either do:&lt;/P&gt;

&lt;BLOCKQUOTE&gt;
	&lt;P&gt;export I_MPI_DAPL_PROVIDER=ofa-v2-mlx4_0-1u; \&lt;BR /&gt;
		&lt;STRONG&gt;export I_MPI_PERHOST=2; \&lt;/STRONG&gt;&lt;BR /&gt;
		/opt/intel/impi_latest/intel64/bin/mpirun -genv I_MPI_PIN=1 -genv I_MPI_PIN_DOMAIN=socket -n 4 hw_ibm_impi&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;

&lt;P&gt;or:&lt;/P&gt;

&lt;BLOCKQUOTE&gt;
	&lt;P&gt;export I_MPI_DAPL_PROVIDER=ofa-v2-mlx4_0-1u; \&lt;BR /&gt;
		/opt/intel/impi_latest/intel64/bin/mpirun &lt;STRONG&gt;-perhost 2&lt;/STRONG&gt; -genv I_MPI_PIN=1 -genv I_MPI_PIN_DOMAIN=socket -n 4 hw_ibm_impi&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;

&lt;P&gt;Both are valid and will put 2 MPI processes on each node.&lt;/P&gt;

&lt;P&gt;Let me know if this helps what you're trying to do.&lt;/P&gt;

&lt;P&gt;Regards,&lt;BR /&gt;
	~Gergana&lt;/P&gt;</description>
    <pubDate>Tue, 17 Feb 2015 22:34:53 GMT</pubDate>
    <dc:creator>Gergana_S_Intel</dc:creator>
    <dc:date>2015-02-17T22:34:53Z</dc:date>
    <item>
      <title>Trying to use I_MPI_PIN_DOMAIN=socket</title>
      <link>https://community.intel.com/t5/Intel-MPI-Library/Trying-to-use-I-MPI-PIN-DOMAIN-socket/m-p/1061325#M4532</link>
      <description>&lt;P&gt;I'm running on an IBM cluster with nodes that have dual socket Ivy Bridge processors and 2 Nvidia K40 Tesla cards.&amp;nbsp; I'm trying to run with 4 MPI ranks using Intel MPI 5 Update 2 with a single MPI rank for each socket.&amp;nbsp; I'm trying to learn how to do this by using a simple MPI Hello World program that prints out the host name, rank and cpu ID.&amp;nbsp; When I run with 2 MPI ranks, my simple program works as expected.&amp;nbsp; When I run with 4 MPI ranks and use the mpirun that comes with Intel MPI, all 4 ranks run on the same node that I launched from.&amp;nbsp; I am doing this interactively and get a set of two nodes using the following command:&lt;/P&gt;

&lt;P&gt;qsub -I -l nodes=2,ppn=16 -q k20&lt;/P&gt;

&lt;P&gt;I am using the following commands to run my program:&lt;/P&gt;

&lt;P&gt;source /opt/intel/bin/compilervars.sh intel64; \&lt;BR /&gt;
	source /opt/intel/impi_latest/intel64/bin/mpivars.sh; \&lt;BR /&gt;
	export I_MPI_DAPL_PROVIDER=ofa-v2-mlx4_0-1u; \&lt;BR /&gt;
	/opt/intel/impi_latest/intel64/bin/mpirun -genv I_MPI_PIN=1 -genv I_MPI_PIN_DOMAIN=socket -n 4 hw_ibm_impi&lt;/P&gt;

&lt;P&gt;If I use a different qsub command, i.e. qsub -I -l nodes=2,ppn=2 -q k20, the program runs as expected with 2 ranks on each node.&amp;nbsp; But that does not seem the right way to get my node allocation if I want to also run threads from each MPI rank.&amp;nbsp; Also, using my initial qsub command, I can run with 32 ranks and 16 ranks per host and the application runs as expected.&lt;/P&gt;

&lt;P&gt;I can also try using the Intel mpiexec command instead of mpirun and I get the following result:&lt;/P&gt;

&lt;P&gt;source /opt/intel/bin/compilervars.sh intel64; \&lt;BR /&gt;
	source /opt/intel/impi_latest/intel64/bin/mpivars.sh; \&lt;BR /&gt;
	export I_MPI_DAPL_PROVIDER=ofa-v2-mlx4_0-1u; \&lt;BR /&gt;
	/opt/intel/impi_latest/intel64/bin/mpiexec -genv I_MPI_PIN=1 -genv I_MPI_PIN_DOMAIN=socket -n 4 hw_ibm_impi&lt;BR /&gt;
	mpiexec_ibm-011: cannot connect to local mpd (/tmp/mpd2.console_username); possible causes:&lt;BR /&gt;
	&amp;nbsp; 1. no mpd is running on this host&lt;BR /&gt;
	&amp;nbsp; 2. an mpd is running but was started without a "console" (-n option)&lt;/P&gt;

&lt;P&gt;Any ideas why this is not working?&amp;nbsp; Am I not using I_MPI_PIN_DOMAIN correctly?&amp;nbsp; Could there be something messed up with the Intel MPI installation on the cluster?&amp;nbsp; Or some problem with the installation of the scheduler?&lt;/P&gt;

&lt;P&gt;Thanks,&lt;/P&gt;

&lt;P&gt;Dave&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 31 Jan 2015 17:09:09 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-MPI-Library/Trying-to-use-I-MPI-PIN-DOMAIN-socket/m-p/1061325#M4532</guid>
      <dc:creator>William_N_</dc:creator>
      <dc:date>2015-01-31T17:09:09Z</dc:date>
    </item>
    <item>
      <title>Ppn=16 requires 16 ranks on</title>
      <link>https://community.intel.com/t5/Intel-MPI-Library/Trying-to-use-I-MPI-PIN-DOMAIN-socket/m-p/1061326#M4533</link>
      <description>&lt;P&gt;Ppn=16 requires 16 ranks on your first node before allocating ranks (processes) to the next node, so I'm not surprised at the result you got. Ppn=2 seems to express your intent.&lt;/P&gt;

&lt;P&gt;the default I_mpi_pin_domain =auto normally works well for mpi_funneled &amp;nbsp;mode when threads per rank is set by omp_num_threads. &amp;nbsp;You don't even need to call mpi_init_thread although mpi standard says you should. &amp;nbsp;If you do odd things like mismatch of numbers of threads and &amp;nbsp;cores it could be useful to check what Intel openmp sees by kmp_affinity =verbose and mpi by i_mpi_debug=5&lt;/P&gt;

&lt;P&gt;Setting i_mpi_pin_domain=socket allows ranks and threads to move within the socket where they start but doesn't appear to do anything for your expressed intent.&lt;/P&gt;

&lt;P&gt;in order to use mpiexec if your installation supports, you would first run mpdboot.&lt;/P&gt;</description>
      <pubDate>Sat, 31 Jan 2015 19:42:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-MPI-Library/Trying-to-use-I-MPI-PIN-DOMAIN-socket/m-p/1061326#M4533</guid>
      <dc:creator>TimP</dc:creator>
      <dc:date>2015-01-31T19:42:00Z</dc:date>
    </item>
    <item>
      <title>Is anyone able to provide</title>
      <link>https://community.intel.com/t5/Intel-MPI-Library/Trying-to-use-I-MPI-PIN-DOMAIN-socket/m-p/1061327#M4534</link>
      <description>&lt;P&gt;Is anyone able to provide some help on how to do what I described in my original post or to provide advice on how to troubleshoot the problem?&amp;nbsp; It seems that I should be able to reserve all the cores on a node and then run with a smaller number of MPI ranks than cores so that I can then run with threads on the other cores in an MPI+X fashion.&amp;nbsp; I have done that on other clusters using other implementations of MPI.&amp;nbsp; I need to somehow figure out how to resolve this issue.&lt;/P&gt;

&lt;P&gt;Thanks for any help,&lt;/P&gt;

&lt;P&gt;Dave&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 06 Feb 2015 16:09:03 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-MPI-Library/Trying-to-use-I-MPI-PIN-DOMAIN-socket/m-p/1061327#M4534</guid>
      <dc:creator>William_N_</dc:creator>
      <dc:date>2015-02-06T16:09:03Z</dc:date>
    </item>
    <item>
      <title>Hey Dave,</title>
      <link>https://community.intel.com/t5/Intel-MPI-Library/Trying-to-use-I-MPI-PIN-DOMAIN-socket/m-p/1061328#M4535</link>
      <description>&lt;P&gt;Hey Dave,&lt;/P&gt;

&lt;P&gt;If I understand correctly, you want to specify how many MPI ranks to run on a single node.&amp;nbsp; By default, Intel MPI will use up all cores available on a machine before going to the next one on the list.&amp;nbsp; That's why the 4 MPI ranks you start are all put on the same host.&lt;/P&gt;

&lt;P&gt;To overwrite this behavior, use the -perhost option for mpirun or set the I_MPI_PERHOST environment variable to an integer value.&amp;nbsp; In the run script you provide, you can either do:&lt;/P&gt;

&lt;BLOCKQUOTE&gt;
	&lt;P&gt;export I_MPI_DAPL_PROVIDER=ofa-v2-mlx4_0-1u; \&lt;BR /&gt;
		&lt;STRONG&gt;export I_MPI_PERHOST=2; \&lt;/STRONG&gt;&lt;BR /&gt;
		/opt/intel/impi_latest/intel64/bin/mpirun -genv I_MPI_PIN=1 -genv I_MPI_PIN_DOMAIN=socket -n 4 hw_ibm_impi&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;

&lt;P&gt;or:&lt;/P&gt;

&lt;BLOCKQUOTE&gt;
	&lt;P&gt;export I_MPI_DAPL_PROVIDER=ofa-v2-mlx4_0-1u; \&lt;BR /&gt;
		/opt/intel/impi_latest/intel64/bin/mpirun &lt;STRONG&gt;-perhost 2&lt;/STRONG&gt; -genv I_MPI_PIN=1 -genv I_MPI_PIN_DOMAIN=socket -n 4 hw_ibm_impi&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;

&lt;P&gt;Both are valid and will put 2 MPI processes on each node.&lt;/P&gt;

&lt;P&gt;Let me know if this helps what you're trying to do.&lt;/P&gt;

&lt;P&gt;Regards,&lt;BR /&gt;
	~Gergana&lt;/P&gt;</description>
      <pubDate>Tue, 17 Feb 2015 22:34:53 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-MPI-Library/Trying-to-use-I-MPI-PIN-DOMAIN-socket/m-p/1061328#M4535</guid>
      <dc:creator>Gergana_S_Intel</dc:creator>
      <dc:date>2015-02-17T22:34:53Z</dc:date>
    </item>
  </channel>
</rss>

