<?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     program main in Intel® MPI Library</title>
    <link>https://community.intel.com/t5/Intel-MPI-Library/Problem-with-MPI-SCATTERV/m-p/923307#M2404</link>
    <description>&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; program main&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; use mpi&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; implicit none&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; integer :: myid, numtasks, ierr&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; integer, allocatable :: ia_in(:), ia(:), displs(:), scounts(:)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; call MPI_INIT ( ierr )&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; call MPI_COMM_RANK ( MPI_COMM_WORLD , myid , ierr )&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; call MPI_COMM_SIZE ( MPI_COMM_WORLD , numtasks , ierr )&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; write(*,*) "size-rank:", numtasks, "-", myid&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; if (myid == 0) then&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; allocate(ia_in(100))&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do i = 1, size(ia_in, 1)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ia_in(i) = i&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end do&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; end if&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; allocate(displs(numtasks))&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; allocate(scounts(numtasks))&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; displs(1) = 0&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; scounts(1) = 1&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; do i = 2, numtasks&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; scounts(i) = i&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; displs(i) = displs(i-1) + scounts(i-1)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; end do&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; write(*,*) ""&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; allocate(ia(scounts(myid+1)))&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; write(*,'(a, 4(x, i))') "myid, size displs, size scounts, size ia", myid, size(displs, 1), size(scounts, 1), size(ia, 1)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; !if scounts values are different, error in MPI_SCATTERV&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; call MPI_SCATTERV(ia_in, scounts, displs, MPI_INT, ia, scounts, MPI_INT, 0, MPI_COMM_WORLD , ierr)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; call MPI_BARRIER(MPI_COMM_WORLD, ierr)&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call MPI_FINALIZE ( ierr )&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; stop&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; end program main&lt;/P&gt;</description>
    <pubDate>Thu, 28 Nov 2013 22:16:31 GMT</pubDate>
    <dc:creator>danielsue</dc:creator>
    <dc:date>2013-11-28T22:16:31Z</dc:date>
    <item>
      <title>Problem with MPI_SCATTERV</title>
      <link>https://community.intel.com/t5/Intel-MPI-Library/Problem-with-MPI-SCATTERV/m-p/923306#M2403</link>
      <description>&lt;P&gt;Hi All,&lt;/P&gt;

&lt;P&gt;I ran into a problem with MPI_SCATTERV. When the sendcounts (scounts) is the same for every process, it works fine, but if the sendcounts is different, (e.g., 1, 2, 3, 4 for 4 processes) there will be error as follows:&lt;/P&gt;

&lt;P&gt;Fatal error in PMPI_Scatterv: Message truncated, error stack:&lt;BR /&gt;
	PMPI_Scatterv(376)................: MPI_Scatterv(sbuf=0000000000000000, scnts=0000000000E16CD0, displs=0000000000E16CA0,&lt;BR /&gt;
	&amp;nbsp;MPI_INT, rbuf=0000000002BD0050, rcount=1, MPI_INT, root=0, MPI_COMM_WORLD) failed&lt;BR /&gt;
	MPIR_Scatterv_impl(187)...........:&lt;BR /&gt;
	MPIR_Scatterv(144)................:&lt;BR /&gt;
	MPIDI_CH3U_Receive_data_found(129): Message from rank 0 and tag 6 truncated; 16 bytes received but buffer size is 4&lt;BR /&gt;
	&amp;nbsp;&lt;/P&gt;

&lt;P&gt;The code is simple as follows:&lt;/P&gt;

&lt;P&gt;call MPI_SCATTERV(ja_in, scounts, displs, MPI_INT, ja, scounts, MPI_INT, 0, comm , ierr)&lt;/P&gt;

&lt;P&gt;Thanks and regards,&lt;/P&gt;

&lt;P&gt;Daniel&lt;/P&gt;</description>
      <pubDate>Thu, 28 Nov 2013 20:23:51 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-MPI-Library/Problem-with-MPI-SCATTERV/m-p/923306#M2403</guid>
      <dc:creator>danielsue</dc:creator>
      <dc:date>2013-11-28T20:23:51Z</dc:date>
    </item>
    <item>
      <title>    program main</title>
      <link>https://community.intel.com/t5/Intel-MPI-Library/Problem-with-MPI-SCATTERV/m-p/923307#M2404</link>
      <description>&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; program main&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; use mpi&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; implicit none&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; integer :: myid, numtasks, ierr&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; integer, allocatable :: ia_in(:), ia(:), displs(:), scounts(:)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; call MPI_INIT ( ierr )&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; call MPI_COMM_RANK ( MPI_COMM_WORLD , myid , ierr )&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; call MPI_COMM_SIZE ( MPI_COMM_WORLD , numtasks , ierr )&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; write(*,*) "size-rank:", numtasks, "-", myid&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; if (myid == 0) then&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; allocate(ia_in(100))&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do i = 1, size(ia_in, 1)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ia_in(i) = i&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end do&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; end if&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; allocate(displs(numtasks))&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; allocate(scounts(numtasks))&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; displs(1) = 0&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; scounts(1) = 1&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; do i = 2, numtasks&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; scounts(i) = i&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; displs(i) = displs(i-1) + scounts(i-1)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; end do&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; write(*,*) ""&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; allocate(ia(scounts(myid+1)))&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; write(*,'(a, 4(x, i))') "myid, size displs, size scounts, size ia", myid, size(displs, 1), size(scounts, 1), size(ia, 1)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; !if scounts values are different, error in MPI_SCATTERV&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; call MPI_SCATTERV(ia_in, scounts, displs, MPI_INT, ia, scounts, MPI_INT, 0, MPI_COMM_WORLD , ierr)&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; call MPI_BARRIER(MPI_COMM_WORLD, ierr)&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; call MPI_FINALIZE ( ierr )&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; stop&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; end program main&lt;/P&gt;</description>
      <pubDate>Thu, 28 Nov 2013 22:16:31 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-MPI-Library/Problem-with-MPI-SCATTERV/m-p/923307#M2404</guid>
      <dc:creator>danielsue</dc:creator>
      <dc:date>2013-11-28T22:16:31Z</dc:date>
    </item>
    <item>
      <title>It works after I changed the</title>
      <link>https://community.intel.com/t5/Intel-MPI-Library/Problem-with-MPI-SCATTERV/m-p/923308#M2405</link>
      <description>&lt;P&gt;It works after I changed the recvcnt value to the scounts(rank+1).&lt;/P&gt;</description>
      <pubDate>Thu, 28 Nov 2013 23:49:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-MPI-Library/Problem-with-MPI-SCATTERV/m-p/923308#M2405</guid>
      <dc:creator>danielsue</dc:creator>
      <dc:date>2013-11-28T23:49:00Z</dc:date>
    </item>
  </channel>
</rss>

