- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I have tested transfer of data in coarray Fortran :
array(:,:) = array(:,:)[2]
The array by dimension 1000x1000 is transferred more than 2.5 s!
So should be?
or it is possible for something to correct?
I used a computer in system Manycore Testig Lab.
Yurs faithfully,
Yuri.
P.S. It is the full program:
program main
real(8), allocatable:: array(:,:)[:]
integer c_t(8), h_t, m_t, s_t, t_t, dh_t, dm_t, ds_t, dt_t
real time_t
allocate(array(1000,1000)
np = this_image()
array(:,:) = real(np)
if ( np == 1 ) then
call date_and_time(values=c_t)
h_t=c_t(5); m_t=c_t(6); s_t=c_t(7); t_t=c_t(8)
array(:,:) = array(:,:)[2]
call date_and_time(values=c_t)
dh_t=c_t(5)-h_t;dm_t=c_t(6)-m_t;ds_t=c_t(7)-s_t;dt_t=c_t(8)-t_t
time_t=(dh_t*60+dm_t)*60 + ds_t + 0.001*dt_t
print*, 'image=',np,'date_and_time=', time_t
print*, 'array(1,1)=', array(1,1)
sync images(*)
else
sync images(1)
endif
end program
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I have reduced number of operators which contain transfer of data and it has reduced time of calculation.
thanks,
Yuri

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page