In Fortran, whatever-D array is 1-D array. mp_sum should be fine. I saw something strange in your code that you were not copying the right things as you expected. How about the following? output(1:3,1:nbnds,(k_pool*pool_id+1:k_pool*pool_id+k_pool))= input(1:3,1:nbnds,1:k_pool)
Ye =================== Ye Luo, Ph.D. Leadership Computing Facility Argonne National Laboratory 2016-10-28 12:29 GMT-05:00 Vahid Askarpour <[email protected]>: > Dear QE Users, > > I am working on some modifications to the QE-6.0 code using symmetry. When > I try to combine a 3-D array scattered across nodes, I use the following: > > output(3,nbnds,(k_pool*pool_id+1:k_pool*pool_id+k_pool))= > input(3,nbnds,1:k_pool) > > Here, nbnds is the number of bands, k_pool is the number of k points/pool, > and pool_id is the id of the pool. Here I am assuming the the number of k > points is divisible by the number of pools. > > Then I call mp_sum(output,inter_pool_comm) to put all the segments of > input across the nodes into one output file. > > When I run the modified QE code in parallel, the output file is different > from the serial run. > > Does the QE's mp_sum allow the above operation for a three-D array? > > Any hints or suggestions would be greatly appreciated. > > Vahid > > Vahid Askarpour > Department of Physics and Atmospheric Science > Dalhousie University, > Halifax, NS, Canada > _______________________________________________ > Pw_forum mailing list > [email protected] > http://pwscf.org/mailman/listinfo/pw_forum >
_______________________________________________ Pw_forum mailing list [email protected] http://pwscf.org/mailman/listinfo/pw_forum
