diff --git a/Sheet5/Ex2_Second_Attempt.pdf b/Sheet5/Ex2_Second_Attempt.pdf new file mode 100644 index 0000000..d14412d Binary files /dev/null and b/Sheet5/Ex2_Second_Attempt.pdf differ diff --git a/Sheet5/Ex2_Second_Attempt/Makefile b/Sheet5/Ex2_Second_Attempt/Makefile new file mode 100644 index 0000000..70c6213 --- /dev/null +++ b/Sheet5/Ex2_Second_Attempt/Makefile @@ -0,0 +1,30 @@ +# +# use GNU-Compiler tools +COMPILER=GCC_ +# alternatively from the shell +# export COMPILER=GCC_ +# or, alternatively from the shell +# make COMPILER=GCC_ + +# use Intel compilers +#COMPILER=ICC_ + +# use PGI compilers +# COMPILER=PGI_ +EX=Ex2 + +SOURCES = main${EX}.cpp +OBJECTS = $(SOURCES:.cpp=.o) + +PROGRAM = main.${COMPILER} + +# uncomment the next to lines for debugging and detailed performance analysis +CXXFLAGS += -g -fopenmp +LINKFLAGS += -g -fopenmp -ltbb +# do not use -pg with PGI compilers + +ifndef COMPILER + COMPILER=GCC_ +endif + +include ${COMPILER}default.mk diff --git a/Sheet5/Ex2_Second_Attempt/mainEx2.cpp b/Sheet5/Ex2_Second_Attempt/mainEx2.cpp index 61e721b..7461f15 100644 --- a/Sheet5/Ex2_Second_Attempt/mainEx2.cpp +++ b/Sheet5/Ex2_Second_Attempt/mainEx2.cpp @@ -3,7 +3,7 @@ #include #include #include -// #include // only include if the compiler supports it + #include // only include if the compiler supports it #include using namespace std; @@ -94,7 +94,7 @@ int main() { "but my Mac's Clang compiler does not support parallel execution policies.\n"; // C++17 execution policy version - /* + double t_ep_start = omp_get_wtime(); auto p = minmax_element(execution::par, v.begin(), v.end()); @@ -140,6 +140,6 @@ int main() { << ", Harmonic mean: " << harm_ep << "\n"; cout << "Standard deviation: " << std_ep << "\n"; cout << "Elapsed time (s): " << t_ep_end - t_ep_start << "\n"; - */ + return 0; } diff --git a/Sheet5/Ex5_Second_Attempt.pdf b/Sheet5/Ex5_Second_Attempt.pdf new file mode 100644 index 0000000..0d0024a Binary files /dev/null and b/Sheet5/Ex5_Second_Attempt.pdf differ diff --git a/Sheet5/gh_response.txt b/Sheet5/gh_response.txt index b5d9d6e..1cb88de 100644 --- a/Sheet5/gh_response.txt +++ b/Sheet5/gh_response.txt @@ -1,4 +1,15 @@ +UPDATE 2025-12-18 +Ex2_Second_Attempt: +* Makefile missing [GH: added] +* execution::par : correct results and seems 6x faster on 8 cores. +Ex5_Second_Attempt: +* FEM assembling parallel OK +* no parallelization of GetDiag +* extra _omp version of JacobiSolve and two others + This is not necessary. Parallelize directly in the functions, also in vdop.cpp + See pdf Ex5_Second_Attempt.pdf +---------------------------- Summery of your results?! g++ -O3 -fopenmp mainEx1.cpp mylib.cpp -o dotprod