Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Defect: Remote Image Accessing Causes Data Shift #738

Open
evansste12432 opened this issue Sep 9, 2021 · 0 comments
Open

Defect: Remote Image Accessing Causes Data Shift #738

evansste12432 opened this issue Sep 9, 2021 · 0 comments

Comments

@evansste12432
Copy link

evansste12432 commented Sep 9, 2021

  • I am reporting a bug others will be able to reproduce and not asking a question or requesting a new feature.

System information including:

  • OpenCoarrays Version: 2.9.2
  • Fortran Compiler: GNU Fortran 8.3.0
  • C compiler used for building lib: gcc 8.3.0
  • Installation method: I installed from a downloaded tarball
  • All flags & options passed to the installer: N/A (normal CMake build)
  • Output of uname -a: Linux Computer1 4.19.0-16amd64 #1 SMP Debian 4.19.181-1 (2021-03-19) x86_64 GNU/Linux
  • MPI library being used: mpiexec --version shows version 3.3
  • Machine architecture and number of physical cores: Dell PowerEdge R910 Server with 32 cores (4x 8-Core Xeon X7560 2.27GHz)
  • Version of CMake: 3.13.4

To help us debug your issue please explain:

What you were trying to do (and why)

I'm trying to transfer a matrix from one coarray image, to another.

I wrote a parallel program that is designed to sort data sets and build an array of numbers. Those numbers are based on similarities in the sets that it processes. The resulting array will be used for further analysis in another program.

What happened (include command output, screenshots, logs, etc.)

During the gathering portion of the program, which collects information from different images, the program behaves unexpectedly. When reading information from other images, the program seems to shift the data, to the left, by one column. For example, in my program, a similar command like this: newplace = oldplace(:,:)[3] will put oldplace(:,2:)[3] into newplace, with unexpected, strange numbers in the right-most column.

I wrote a similar program that is supposed to print out nine rows of 1-4. The following link shows a screenshot of what is printed out, instead, when that program is run:

http://boolengine.com/badindex_output.png

What you expected to happen

I expected the program to copy the data to the targeted image without shifting it, and therefore print out nine rows of 1-4.

Step-by-step reproduction instructions to reproduce the error/bug

My shorter program is shown below. If you compile and run it, it will produce the shifted result that I'm talking about. If you run the program with 3 cores, it will produce the result that is shown in the screenshot, above.

Here is that program:

`program badindex
use iso_fortran_env

implicit none

integer, dimension(:,:), codimension[:], allocatable :: drop
integer, dimension(:,:), allocatable :: A, intermediate
integer, codimension[*], save :: here, tohere
integer :: n, height, width, dropheight

width = 4
dropheight = 3
height = dropheight*num_images()
allocate(A(height,width))
allocate(drop(dropheight,width) [*])
drop = 0
A = 0

here = (this_image()-1)*dropheight+1
tohere = this_image()*dropheight	

do n = 1,dropheight
	drop(n,:) = [1, 2, 3, 4]
end do
sync all

if (this_image() == 1) then
	do n = 1,num_images()
		intermediate = drop(:,:)[n]
		A(here[n]:tohere[n],:) = intermediate			
	end do
end if
sync all

if (this_image() == 1) then
	do n = 1,height
		print *, A(n,:)
	end do
end if

end program badindex`

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant