7 |
|
!! |
8 |
|
!! @author Charles F. Vardeman II |
9 |
|
!! @author Matthew Meineke |
10 |
< |
!! @version $Id: mpiSimulation_module.F90,v 1.10 2003-12-17 20:13:33 chuckv Exp $, $Date: 2003-12-17 20:13:33 $, $Name: not supported by cvs2svn $, $Revision: 1.10 $ |
10 |
> |
!! @version $Id: mpiSimulation_module.F90,v 1.11 2003-12-18 20:46:45 chuckv Exp $, $Date: 2003-12-18 20:46:45 $, $Name: not supported by cvs2svn $, $Revision: 1.11 $ |
11 |
|
|
12 |
|
module mpiSimulation |
13 |
|
use definitions |
60 |
|
|
61 |
|
#ifdef PROFILE |
62 |
|
public :: printCommTime |
63 |
< |
|
64 |
< |
real(kind = dp ), save :: commTime = 0.0_dp |
65 |
< |
real(kind = dp ) :: commTimeInitial,commTimeFinal |
63 |
> |
public :: getCommTime |
64 |
> |
real,save :: commTime = 0.0 |
65 |
> |
real :: commTimeInitial,commTimeFinal |
66 |
|
#endif |
67 |
|
|
68 |
|
!! Include mpiComponentPlan type. mpiComponentPlan is a |
512 |
|
if (present(status)) status = 0 |
513 |
|
noffset = this_plan%displs(this_plan%myPlanRank) |
514 |
|
#ifdef PROFILE |
515 |
< |
commTimeInitial = mpi_wtime() |
515 |
> |
call cpu_time(commTimeInitial) |
516 |
|
#endif |
517 |
|
call mpi_allgatherv(sbuffer,this_plan%gsPlanSize, mpi_double_precision, & |
518 |
|
rbuffer,this_plan%counts,this_plan%displs,mpi_double_precision, & |
519 |
|
this_plan%myPlanComm, mpi_err) |
520 |
|
#ifdef PROFILE |
521 |
< |
commTimeFinal = mpi_wtime() |
521 |
> |
call cpu_time(commTimeFinal) |
522 |
|
commTime = commTime + commTimeFinal - commTimeInitial |
523 |
|
#endif |
524 |
|
|
542 |
|
|
543 |
|
! noffset = this_plan%displs(this_plan%me) |
544 |
|
#ifdef PROFILE |
545 |
< |
commTimeInitial = mpi_wtime() |
545 |
> |
call cpu_time(commTimeInitial) |
546 |
|
#endif |
547 |
|
|
548 |
|
call mpi_allgatherv(sbuffer,this_plan%gsPlanSize, mpi_double_precision, & |
550 |
|
this_plan%myPlanComm, mpi_err) |
551 |
|
|
552 |
|
#ifdef PROFILE |
553 |
< |
commTimeFinal = mpi_wtime() |
553 |
> |
call cpu_time(commTimeFinal) |
554 |
|
commTime = commTime + commTimeFinal - commTimeInitial |
555 |
|
#endif |
556 |
|
|
571 |
|
if (present(status)) status = 0 |
572 |
|
|
573 |
|
#ifdef PROFILE |
574 |
< |
commTimeInitial = mpi_wtime() |
574 |
> |
call cpu_time(commTimeInitial) |
575 |
|
#endif |
576 |
|
call mpi_reduce_scatter(sbuffer,rbuffer, this_plan%counts, & |
577 |
|
mpi_double_precision, MPI_SUM, this_plan%myPlanComm, mpi_err) |
578 |
|
#ifdef PROFILE |
579 |
< |
commTimeFinal = mpi_wtime() |
579 |
> |
call cpu_time(commTimeFinal) |
580 |
|
commTime = commTime + commTimeFinal - commTimeInitial |
581 |
|
#endif |
582 |
|
|
596 |
|
|
597 |
|
if (present(status)) status = 0 |
598 |
|
#ifdef PROFILE |
599 |
< |
commTimeInitial = mpi_wtime() |
599 |
> |
call cpu_time(commTimeInitial) |
600 |
|
#endif |
601 |
|
|
602 |
|
call mpi_reduce_scatter(sbuffer,rbuffer, this_plan%counts, & |
603 |
|
mpi_double_precision, MPI_SUM, this_plan%myPlanComm, mpi_err) |
604 |
|
#ifdef PROFILE |
605 |
< |
commTimeFinal = mpi_wtime() |
605 |
> |
call cpu_time(commTimeFinal) |
606 |
|
commTime = commTime + commTimeFinal - commTimeInitial |
607 |
|
#endif |
608 |
|
|
749 |
|
|
750 |
|
#ifdef PROFILE |
751 |
|
subroutine printCommTime() |
752 |
– |
|
752 |
|
write(*,*) "MPI communication time is: ", commTime |
754 |
– |
|
753 |
|
end subroutine printCommTime |
754 |
+ |
|
755 |
+ |
function getCommTime() result(comm_time) |
756 |
+ |
real :: comm_time |
757 |
+ |
comm_time = commTime |
758 |
+ |
end function getCommTime |
759 |
+ |
|
760 |
|
#endif |
761 |
|
|
762 |
|
#endif // is_mpi |