diff --git a/AMDiS/libtool b/AMDiS/libtool index 1a37a1c4572b62407064c5fbf948ba43cd0594c4..ace48e58891430cbcc2eae0fee1709dd2bac898f 100755 --- a/AMDiS/libtool +++ b/AMDiS/libtool @@ -44,7 +44,7 @@ available_tags=" CXX F77" # ### BEGIN LIBTOOL CONFIG -# Libtool was configured on host deimos102: +# Libtool was configured on host p1q024: # Shell to use when invoking shell scripts. SHELL="/bin/sh" @@ -6760,7 +6760,7 @@ build_old_libs=`case $build_libtool_libs in yes) $echo no;; *) $echo yes;; esac` # End: # ### BEGIN LIBTOOL TAG CONFIG: CXX -# Libtool was configured on host deimos102: +# Libtool was configured on host p1q024: # Shell to use when invoking shell scripts. SHELL="/bin/sh" @@ -7065,7 +7065,7 @@ include_expsyms="" # ### BEGIN LIBTOOL TAG CONFIG: F77 -# Libtool was configured on host deimos102: +# Libtool was configured on host p1q024: # Shell to use when invoking shell scripts. SHELL="/bin/sh" diff --git a/AMDiS/src/ProblemInstat.cc b/AMDiS/src/ProblemInstat.cc index 267a0aa273201360e765c0cdd23e4c1ae8bac447..8c67ac046296d62acc370e17360c943538ab2e5d 100644 --- a/AMDiS/src/ProblemInstat.cc +++ b/AMDiS/src/ProblemInstat.cc @@ -9,7 +9,7 @@ // // See also license.opensource.txt in the distribution. -#ifndef HAVE_PARALLEL_DOMAIN_AMDIS +#ifdef HAVE_PARALLEL_DOMAIN_AMDIS #include <mpi.h> #endif diff --git a/AMDiS/src/ProblemVec.cc b/AMDiS/src/ProblemVec.cc index 42917ac9fd533ce49775556d347517364a02276c..20735008423bc320d8aa0339a70907df4fd543b9 100644 --- a/AMDiS/src/ProblemVec.cc +++ b/AMDiS/src/ProblemVec.cc @@ -570,6 +570,7 @@ namespace AMDiS { } #ifdef HAVE_PARALLEL_DOMAIN_AMDIS + MPI::COMM_WORLD.Barrier(); INFO(info, 8)("estimation of the error needed %.5f seconds\n", MPI::Wtime() - first); #else @@ -651,20 +652,35 @@ namespace AMDiS { FUNCNAME("ProblemVec::buildAfterCoarsen()"); if (dualMeshTraverseRequired()) { +#ifdef HAVE_PARALLEL_DOMAIN_AMDIS + ERROR_EXIT("Dual mesh assemble does not work in parallel code!\n"); +#endif + dualAssemble(adaptInfo, flag, asmMatrix, asmVector); return; } - // printOpenmpTraverseInfo(this, true); - // std::cout << "ElInfo = " << ElInfo::subElemMatrices.size() << std::endl; +#ifdef HAVE_PARALLEL_DOMAIN_AMDIS + double first = MPI::Wtime(); +#endif + for (unsigned int i = 0; i < meshes.size(); i++) meshes[i]->dofCompress(); - clock_t first = clock(); +#ifdef HAVE_PARALLEL_DOMAIN_AMDIS + MPI::COMM_WORLD.Barrier(); + INFO(info, 8)("dof compression needed %.5f seconds\n", + MPI::Wtime() - first); + + first = MPI::Wtime(); +#else #ifdef _OPENMP - double wtime = omp_get_wtime(); + double first = omp_get_wtime(); +#else + clock_t first = clock(); +#endif #endif @@ -786,13 +802,19 @@ namespace AMDiS { INFO(info, 8)("fillin of assembled matrix: %d\n", nnz); } +#ifdef HAVE_PARALLEL_DOMAIN_AMDIS + MPI::COMM_WORLD.Barrier(); + INFO(info, 8)("buildAfterCoarsen needed %.5f seconds\n", + MPI::Wtime() - first); +#else #ifdef _OPENMP - INFO(info, 8)("buildAfterCoarsen needed %.5f seconds system time / %.5f seconds wallclock time\n", - TIME_USED(first, clock()), omp_get_wtime() - wtime); + INFO(info, 8)("buildAfterCoarsen needed %.5f seconds\n", + omp_get_wtime() - wtime); #else INFO(info, 8)("buildAfterCoarsen needed %.5f seconds\n", TIME_USED(first, clock())); -#endif +#endif +#endif } @@ -1109,6 +1131,7 @@ namespace AMDiS { } #ifdef HAVE_PARALLEL_DOMAIN_AMDIS + MPI::COMM_WORLD.Barrier(); INFO(info, 8)("writeFiles needed %.5f seconds\n", MPI::Wtime() - first); #else diff --git a/AMDiS/src/StandardProblemIteration.cc b/AMDiS/src/StandardProblemIteration.cc index 04c2ddf5c67e80d98595ac25b4c42bd44b36425a..ca259224fa83f37d57dfcc8d64cda5c1ab6bf144 100644 --- a/AMDiS/src/StandardProblemIteration.cc +++ b/AMDiS/src/StandardProblemIteration.cc @@ -66,6 +66,10 @@ namespace AMDiS { Flag flag = 0, markFlag = 0; +#ifdef HAVE_PARALLEL_DOMAIN_AMDIS + double first = MPI::Wtime(); +#endif + if (toDo.isSet(MARK)) markFlag = problem->markElements(adaptInfo); else @@ -85,6 +89,12 @@ namespace AMDiS { if (toDo.isSet(ADAPT) && markFlag.isSet(MESH_COARSENED)) flag |= problem->coarsenMesh(adaptInfo); +#ifdef HAVE_PARALLEL_DOMAIN_AMDIS + MPI::COMM_WORLD.Barrier(); + INFO(info, 8)("Local mesh adaption needed %.5f seconds\n", + MPI::Wtime() - first); +#endif + if (toDo.isSet(BUILD)) problem->buildAfterCoarsen(adaptInfo, markFlag, true, true);