From 1bee3e8e5bddbbe1b2d795f6d82838f95b618cb6 Mon Sep 17 00:00:00 2001 From: "jakob.schratter" Date: Tue, 9 Dec 2025 22:06:13 +0100 Subject: [PATCH] Pushing everything again, accidentally deleted my remote repository --- ex1/CLANG_default.mk | 123 +++++ ex1/GCC_AMD32_default.mk | 130 +++++ ex1/GCC_default.mk | 183 ++++++ ex1/ICC_default.mk | 137 +++++ ex1/ONEAPI_default.mk | 176 ++++++ ex1/PGI_default.mk | 93 ++++ ex1/ex1A_mean_values/.vscode/tasks.json | 28 + ex1/ex1A_mean_values/Makefile | 30 + ex1/ex1A_mean_values/main.GCC_ | Bin 0 -> 79184 bytes ex1/ex1A_mean_values/main.cpp | 35 ++ ex1/ex1A_mean_values/main.o | Bin 0 -> 108064 bytes ex1/ex1A_mean_values/means.cpp | 30 + ex1/ex1A_mean_values/means.h | 23 + ex1/ex1A_mean_values/means.o | Bin 0 -> 38416 bytes ex1/ex1B_data-IO_and_vectors/Makefile | 30 + ex1/ex1B_data-IO_and_vectors/data_1.txt | 501 +++++++++++++++++ ex1/ex1B_data-IO_and_vectors/main.GCC_ | Bin 0 -> 158960 bytes ex1/ex1B_data-IO_and_vectors/main.cpp | 53 ++ ex1/ex1B_data-IO_and_vectors/main.o | Bin 0 -> 259656 bytes .../main.cpp | 31 ++ .../special_sum.cpp | 28 + .../special_sum.h | 18 + ex1/ex1D_kahan_summation/main | Bin 0 -> 17200 bytes ex1/ex1D_kahan_summation/main.cpp | 33 ++ ex1/ex1D_kahan_summation/mylib.cpp | 34 ++ ex1/ex1D_kahan_summation/mylib.h | 30 + ex1/ex1E_vector_vs_list/main | Bin 0 -> 249712 bytes ex1/ex1E_vector_vs_list/main.cpp | 63 +++ ex1/ex1F_goldbachs_conjecture/goldbach | Bin 0 -> 205120 bytes ex1/ex1F_goldbachs_conjecture/goldbach.cpp | 42 ++ ex1/ex1F_goldbachs_conjecture/goldbach.h | 21 + ex1/ex1F_goldbachs_conjecture/main | Bin 0 -> 205120 bytes ex1/ex1F_goldbachs_conjecture/main.cpp | 37 ++ ex1/ex1F_goldbachs_conjecture/mayer_primes.h | 73 +++ ex1/ex1G_dense_matrices_access/DenseMatrix.h | 71 +++ .../ProductMatrix.h | 52 ++ ex1/ex1G_dense_matrices_access/main | Bin 0 -> 223648 bytes ex1/ex1G_dense_matrices_access/main.cpp | 93 ++++ ex1/ex1G_dense_matrices_access/sigmoid.h | 12 + ex2/ex2_C_main.py | 18 + ex2/ex_2_Corrected.pdf | Bin 0 -> 475094 bytes ex3/.vscode/settings.json | 71 +++ ex3/CLANG_default.mk | 123 +++++ ex3/GCC_AMD32_default.mk | 130 +++++ ex3/GCC_default.mk | 183 ++++++ ex3/ICC_default.mk | 137 +++++ ex3/ONEAPI_default.mk | 176 ++++++ ex3/PGI_default.mk | 93 ++++ ex3/ex3/Makefile | 30 + ex3/ex3/benchmark_tests.cpp | 333 +++++++++++ ex3/ex3/benchmark_tests.h | 15 + ex3/ex3/benchmarks.cpp | 245 ++++++++ ex3/ex3/benchmarks.h | 89 +++ ex3/ex3/factorization_solve.cpp | 39 ++ ex3/ex3/factorization_solve.h | 21 + ex3/ex3/factorization_solve_tests.cpp | 89 +++ ex3/ex3/factorization_solve_tests.h | 7 + ex3/ex3/geom.cpp | 522 ++++++++++++++++++ ex3/ex3/geom.h | 381 +++++++++++++ ex3/ex3/getmatrix.cpp | 347 ++++++++++++ ex3/ex3/getmatrix.h | 178 ++++++ ex3/ex3/jacsolve.cpp | 61 ++ ex3/ex3/jacsolve.h | 18 + ex3/ex3/main.cpp | 101 ++++ ex3/ex3/userset.cpp | 16 + ex3/ex3/userset.h | 44 ++ ex3/ex3/vdop.cpp | 84 +++ ex3/ex3/vdop.h | 58 ++ ex4/ex_4A.py | 76 +++ ex4/ex_4B.py | 83 +++ ex4/ex_4C.py | 76 +++ ex4/ex_4_results.pdf | Bin 0 -> 258144 bytes ex5/CLANG_default.mk | 131 +++++ ex5/GCCMKL_default.mk | 212 +++++++ ex5/GCC_SINGLE_default.mk | 111 ++++ ex5/GCC_default.mk | 182 ++++++ ex5/ICC_default.mk | 151 +++++ ex5/ONEAPI_default.mk | 181 ++++++ ex5/PGI_default.mk | 96 ++++ ex5/ex5_1/Makefile | 30 + ex5/ex5_1/check_env.h | 99 ++++ ex5/ex5_1/main.cpp | 142 +++++ ex5/ex5_1/mylib.cpp | 137 +++++ ex5/ex5_1/mylib.h | 88 +++ ex5/ex5_1/timing.h | 70 +++ ex5/ex5_2/Makefile | 31 ++ ex5/ex5_2/data_1.txt | 501 +++++++++++++++++ ex5/ex5_2/main.cpp | 130 +++++ ex5/ex5_2/mylib.cpp | 103 ++++ ex5/ex5_2/mylib.h | 42 ++ ex5/ex5_3/Makefile | 30 + ex5/ex5_3/goldbach.cpp | 46 ++ ex5/ex5_3/goldbach.h | 45 ++ ex5/ex5_3/main.cpp | 45 ++ ex5/ex5_3/mayer_primes.h | 73 +++ ex5/ex5_4/Makefile | 30 + ex5/ex5_4/benchmark_tests.cpp | 375 +++++++++++++ ex5/ex5_4/benchmark_tests.h | 13 + ex5/ex5_4/benchmarks.cpp | 141 +++++ ex5/ex5_4/benchmarks.h | 55 ++ ex5/ex5_4/main.cpp | 84 +++ 101 files changed, 9428 insertions(+) create mode 100644 ex1/CLANG_default.mk create mode 100644 ex1/GCC_AMD32_default.mk create mode 100644 ex1/GCC_default.mk create mode 100644 ex1/ICC_default.mk create mode 100644 ex1/ONEAPI_default.mk create mode 100644 ex1/PGI_default.mk create mode 100644 ex1/ex1A_mean_values/.vscode/tasks.json create mode 100644 ex1/ex1A_mean_values/Makefile create mode 100755 ex1/ex1A_mean_values/main.GCC_ create mode 100644 ex1/ex1A_mean_values/main.cpp create mode 100644 ex1/ex1A_mean_values/main.o create mode 100644 ex1/ex1A_mean_values/means.cpp create mode 100644 ex1/ex1A_mean_values/means.h create mode 100644 ex1/ex1A_mean_values/means.o create mode 100644 ex1/ex1B_data-IO_and_vectors/Makefile create mode 100644 ex1/ex1B_data-IO_and_vectors/data_1.txt create mode 100755 ex1/ex1B_data-IO_and_vectors/main.GCC_ create mode 100644 ex1/ex1B_data-IO_and_vectors/main.cpp create mode 100644 ex1/ex1B_data-IO_and_vectors/main.o create mode 100644 ex1/ex1C_summation_of_specified_numbers/main.cpp create mode 100644 ex1/ex1C_summation_of_specified_numbers/special_sum.cpp create mode 100644 ex1/ex1C_summation_of_specified_numbers/special_sum.h create mode 100755 ex1/ex1D_kahan_summation/main create mode 100644 ex1/ex1D_kahan_summation/main.cpp create mode 100644 ex1/ex1D_kahan_summation/mylib.cpp create mode 100644 ex1/ex1D_kahan_summation/mylib.h create mode 100755 ex1/ex1E_vector_vs_list/main create mode 100644 ex1/ex1E_vector_vs_list/main.cpp create mode 100755 ex1/ex1F_goldbachs_conjecture/goldbach create mode 100644 ex1/ex1F_goldbachs_conjecture/goldbach.cpp create mode 100644 ex1/ex1F_goldbachs_conjecture/goldbach.h create mode 100755 ex1/ex1F_goldbachs_conjecture/main create mode 100644 ex1/ex1F_goldbachs_conjecture/main.cpp create mode 100644 ex1/ex1F_goldbachs_conjecture/mayer_primes.h create mode 100644 ex1/ex1G_dense_matrices_access/DenseMatrix.h create mode 100644 ex1/ex1G_dense_matrices_access/ProductMatrix.h create mode 100755 ex1/ex1G_dense_matrices_access/main create mode 100644 ex1/ex1G_dense_matrices_access/main.cpp create mode 100644 ex1/ex1G_dense_matrices_access/sigmoid.h create mode 100644 ex2/ex2_C_main.py create mode 100644 ex2/ex_2_Corrected.pdf create mode 100644 ex3/.vscode/settings.json create mode 100644 ex3/CLANG_default.mk create mode 100644 ex3/GCC_AMD32_default.mk create mode 100644 ex3/GCC_default.mk create mode 100644 ex3/ICC_default.mk create mode 100644 ex3/ONEAPI_default.mk create mode 100644 ex3/PGI_default.mk create mode 100644 ex3/ex3/Makefile create mode 100644 ex3/ex3/benchmark_tests.cpp create mode 100644 ex3/ex3/benchmark_tests.h create mode 100644 ex3/ex3/benchmarks.cpp create mode 100644 ex3/ex3/benchmarks.h create mode 100644 ex3/ex3/factorization_solve.cpp create mode 100644 ex3/ex3/factorization_solve.h create mode 100644 ex3/ex3/factorization_solve_tests.cpp create mode 100644 ex3/ex3/factorization_solve_tests.h create mode 100644 ex3/ex3/geom.cpp create mode 100644 ex3/ex3/geom.h create mode 100644 ex3/ex3/getmatrix.cpp create mode 100644 ex3/ex3/getmatrix.h create mode 100644 ex3/ex3/jacsolve.cpp create mode 100644 ex3/ex3/jacsolve.h create mode 100644 ex3/ex3/main.cpp create mode 100644 ex3/ex3/userset.cpp create mode 100644 ex3/ex3/userset.h create mode 100644 ex3/ex3/vdop.cpp create mode 100644 ex3/ex3/vdop.h create mode 100644 ex4/ex_4A.py create mode 100644 ex4/ex_4B.py create mode 100644 ex4/ex_4C.py create mode 100644 ex4/ex_4_results.pdf create mode 100644 ex5/CLANG_default.mk create mode 100644 ex5/GCCMKL_default.mk create mode 100644 ex5/GCC_SINGLE_default.mk create mode 100644 ex5/GCC_default.mk create mode 100644 ex5/ICC_default.mk create mode 100644 ex5/ONEAPI_default.mk create mode 100644 ex5/PGI_default.mk create mode 100644 ex5/ex5_1/Makefile create mode 100644 ex5/ex5_1/check_env.h create mode 100644 ex5/ex5_1/main.cpp create mode 100644 ex5/ex5_1/mylib.cpp create mode 100644 ex5/ex5_1/mylib.h create mode 100644 ex5/ex5_1/timing.h create mode 100644 ex5/ex5_2/Makefile create mode 100644 ex5/ex5_2/data_1.txt create mode 100644 ex5/ex5_2/main.cpp create mode 100644 ex5/ex5_2/mylib.cpp create mode 100644 ex5/ex5_2/mylib.h create mode 100644 ex5/ex5_3/Makefile create mode 100644 ex5/ex5_3/goldbach.cpp create mode 100644 ex5/ex5_3/goldbach.h create mode 100644 ex5/ex5_3/main.cpp create mode 100644 ex5/ex5_3/mayer_primes.h create mode 100644 ex5/ex5_4/Makefile create mode 100644 ex5/ex5_4/benchmark_tests.cpp create mode 100644 ex5/ex5_4/benchmark_tests.h create mode 100644 ex5/ex5_4/benchmarks.cpp create mode 100644 ex5/ex5_4/benchmarks.h create mode 100644 ex5/ex5_4/main.cpp diff --git a/ex1/CLANG_default.mk b/ex1/CLANG_default.mk new file mode 100644 index 0000000..4bc290d --- /dev/null +++ b/ex1/CLANG_default.mk @@ -0,0 +1,123 @@ +# Basic Defintions for using GNU-compiler suite sequentially +# requires setting of COMPILER=CLANG_ + +#CLANGPATH=//usr/lib/llvm-10/bin/ +CC = ${CLANGPATH}clang +CXX = ${CLANGPATH}clang++ +#CXX = ${CLANGPATH}clang++ -lomptarget -fopenmp-targets=nvptx64-nvidia-cuda --cuda-path=/opt/pgi/linux86-64/2017/cuda/8.0 +#F77 = gfortran +LINKER = ${CXX} + +#http://clang.llvm.org/docs/UsersManual.html#options-to-control-error-and-warning-messages +WARNINGS += -Weverything -Wno-c++98-compat -Wno-sign-conversion -Wno-date-time -Wno-shorten-64-to-32 -Wno-padded -ferror-limit=1 +WARNINGS += -Wdocumentation -Wconversion -Wshadow -Wfloat-conversion -pedantic +#-fsyntax-only -Wdocumentation -Wconversion -Wshadow -Wfloat-conversion -pedantic + +CXXFLAGS += -O3 -std=c++17 -ferror-limit=1 ${WARNINGS} +# don't use -Ofast +# -ftrapv +LINKFLAGS += -O3 + +# different libraries in Ubuntu or manajaró +ifndef UBUNTU +UBUNTU=1 +endif + +# BLAS, LAPACK +LINKFLAGS += -llapack -lblas +# -lopenblas +ifeq ($(UBUNTU),1) +# ubuntu +else +# on archlinux +LINKFLAGS += -lcblas +endif + +# interprocedural optimization +CXXFLAGS += -flto +LINKFLAGS += -flto + +# very good check +# http://clang.llvm.org/extra/clang-tidy/ +# good check, see: http://llvm.org/docs/CodingStandards.html#include-style +SWITCH_OFF=,-readability-magic-numbers,-readability-redundant-control-flow,-readability-redundant-member-init +SWITCH_OFF+=,-readability-redundant-member-init,-readability-isolate-declaration +#READABILITY=,readability*${SWITCH_OFF} +#TIDYFLAGS = -checks=llvm-*,-llvm-header-guard -header-filter=.* -enable-check-profile -extra-arg="-std=c++17" -extra-arg="-fopenmp" +TIDYFLAGS = -checks=llvm-*,-llvm-header-guard${READABILITY} -header-filter=.* -enable-check-profile -extra-arg="-std=c++17" -extra-arg="-fopenmp" +#TIDYFLAGS += -checks='modernize* +# ??? +#TIDYFLAGS = -checks='cert*' -header-filter=.* +# MPI checks ?? +#TIDYFLAGS = -checks='mpi*' +# ?? +#TIDYFLAGS = -checks='performance*' -header-filter=.* +#TIDYFLAGS = -checks='portability-*' -header-filter=.* +#TIDYFLAGS = -checks='readability-*' -header-filter=.* + +default: ${PROGRAM} + +${PROGRAM}: ${OBJECTS} + $(LINKER) $^ ${LINKFLAGS} -o $@ + +clean: + @rm -f ${PROGRAM} ${OBJECTS} + +clean_all:: clean + @rm -f *_ *~ *.bak *.log *.out *.tar + +codecheck: tidy_check +tidy_check: + clang-tidy ${SOURCES} ${TIDYFLAGS} -- ${SOURCES} +# see also http://clang-developers.42468.n3.nabble.com/Error-while-trying-to-load-a-compilation-database-td4049722.html + +run: clean ${PROGRAM} +# time ./${PROGRAM} ${PARAMS} + ./${PROGRAM} ${PARAMS} + +# tar the current directory +MY_DIR = `basename ${PWD}` +tar: clean_all + @echo "Tar the directory: " ${MY_DIR} + @cd .. ;\ + tar cf ${MY_DIR}.tar ${MY_DIR} *default.mk ;\ + cd ${MY_DIR} +# tar cf `basename ${PWD}`.tar * + +doc: + doxygen Doxyfile + +######################################################################### + +.cpp.o: + $(CXX) -c $(CXXFLAGS) -o $@ $< + +.c.o: + $(CC) -c $(CFLAGS) -o $@ $< + +.f.o: + $(F77) -c $(FFLAGS) -o $@ $< + +################################################################################################## +# some tools +# Cache behaviour (CXXFLAGS += -g tracks down to source lines; no -pg in linkflags) +cache: ${PROGRAM} + valgrind --tool=callgrind --simulate-cache=yes ./$^ ${PARAMS} +# kcachegrind callgrind.out. & + kcachegrind `ls -1tr callgrind.out.* |tail -1` + +# Check for wrong memory accesses, memory leaks, ... +# use smaller data sets +mem: ${PROGRAM} + valgrind -v --leak-check=yes --tool=memcheck --undef-value-errors=yes --track-origins=yes --log-file=$^.addr.out --show-reachable=yes ./$^ ${PARAMS} + +# Simple run time profiling of your code +# CXXFLAGS += -g -pg +# LINKFLAGS += -pg +prof: ${PROGRAM} + perf record ./$^ ${PARAMS} + perf report +# gprof -b ./$^ > gp.out +# kprof -f gp.out -p gprof & + +codecheck: tidy_check diff --git a/ex1/GCC_AMD32_default.mk b/ex1/GCC_AMD32_default.mk new file mode 100644 index 0000000..a911b6b --- /dev/null +++ b/ex1/GCC_AMD32_default.mk @@ -0,0 +1,130 @@ +# Basic Defintions for using GNU-compiler suite sequentially +# requires setting of COMPILER=GCC_ + +CC = gcc +CXX = g++ +F77 = gfortran +LINKER = ${CXX} + +# on mephisto: +#CXXFLAGS += -I/share/apps/atlas/include +#LINKFLAGS += -L/share/apps/atlas/lib +#LINKFLAGS += -lcblas -latlas + +#LINKFLAGS += -lblas +# Der Header muss mit extern "C" versehen werden, damit g++ alles findet. + + +#WARNINGS = -pedantic -pedantic-errors -Wall -Wextra -Werror -Wconversion -Weffc++ -Woverloaded-virtual -Wfloat-equal -Wshadow +WARNINGS = -pedantic -Wall -Wextra -Wconversion -Weffc++ -Woverloaded-virtual -Wfloat-equal -Wshadow \ + -Wredundant-decls -Winline -fmax-errors=1 +# -Wunreachable-code +# -Wunreachable-code +CXXFLAGS += -ffast-math -O3 -march=native -std=c++17 ${WARNINGS} +#CXXFLAGS += -Ofast -funroll-all-loops -std=c++17 ${WARNINGS} +#-msse3 +# -ftree-vectorizer-verbose=2 -DNDEBUG +# -ftree-vectorizer-verbose=5 +# -ftree-vectorize -fdump-tree-vect-blocks=foo.dump -fdump-tree-pre=stderr + +# CFLAGS = -ffast-math -O3 -DNDEBUG -msse3 -fopenmp -fdump-tree-vect-details +# CFLAGS = -ffast-math -O3 -funroll-loops -DNDEBUG -msse3 -fopenmp -ftree-vectorizer-verbose=2 +# #CFLAGS = -ffast-math -O3 -DNDEBUG -msse3 -fopenmp +# FFLAGS = -ffast-math -O3 -DNDEBUG -msse3 -fopenmp +# LFLAGS = -ffast-math -O3 -DNDEBUG -msse3 -fopenmp +LINKFLAGS += -O3 + +# BLAS, LAPACK +OPENBLAS_DIR = /opt/openblas_GCCseq +#OPENBLAS_DIR = /opt/openblas_GCC +OPENBLAS_LIBDIR = ${OPENBLAS_DIR}/lib +OPENBLAS_INCDIR = ${OPENBLAS_DIR}/include +CXXFLAGS += -I${OPENBLAS_INCDIR} +LINKFLAGS += -L${OPENBLAS_LIBDIR} -lopenblas + +# interprocedural optimization +CXXFLAGS += -flto +LINKFLAGS += -flto + +# profiling tools +#CXXFLAGS += -pg +#LINKFLAGS += -pg + +default: ${PROGRAM} + +${PROGRAM}: ${OBJECTS} + $(LINKER) $^ ${LINKFLAGS} -o $@ + +clean: + @rm -f ${PROGRAM} ${OBJECTS} + +clean_all:: clean + -@rm -f *_ *~ *.bak *.log *.out *.tar *.orig + -@rm -r html + +run: clean ${PROGRAM} +# time ./${PROGRAM} +# ./${PROGRAM} + ( export LD_LIBRARY_PATH=${OPENBLAS_LIBDIR}:${LD_LIBRARY_PATH} ; ./${PROGRAM} ) +# or 'export LD_LIBRARY_PATH=/opt/openblas_gcc/lib:${LD_LIBRARY_PATH}' in your ~/.bashrc + +# tar the current directory +MY_DIR = `basename ${PWD}` +tar: + @echo "Tar the directory: " ${MY_DIR} + @cd .. ;\ + tar cf ${MY_DIR}.tar ${MY_DIR} *default.mk ;\ + cd ${MY_DIR} +# tar cf `basename ${PWD}`.tar * + +doc: + doxygen Doxyfile + +######################################################################### + +.cpp.o: + $(CXX) -c $(CXXFLAGS) -o $@ $< + +.c.o: + $(CC) -c $(CFLAGS) -o $@ $< + +.f.o: + $(F77) -c $(FFLAGS) -o $@ $< + +################################################################################################## +# some tools +# Cache behaviour (CXXFLAGS += -g tracks down to source lines; no -pg in linkflags) +cache: ${PROGRAM} + valgrind --tool=callgrind --simulate-cache=yes ./$^ +# kcachegrind callgrind.out. & + kcachegrind `ls -1tr callgrind.out.* |tail -1` + +# Check for wrong memory accesses, memory leaks, ... +# use smaller data sets +# no "-pg" in compile/link options +mem: ${PROGRAM} + valgrind -v --leak-check=yes --tool=memcheck --undef-value-errors=yes --track-origins=yes --log-file=$^.addr.out --show-reachable=yes ./$^ + +# Simple run time profiling of your code +# CXXFLAGS += -g -pg +# LINKFLAGS += -pg +prof: ${PROGRAM} + ./$^ + gprof -b ./$^ > gp.out +# kprof -f gp.out -p gprof & + +#Trace your heap: +#> heaptrack ./main.GCC_ +#> heaptrack_gui heaptrack.main.GCC_..gz +heap: ${PROGRAM} + heaptrack ./$^ 11 + heaptrack_gui `ls -1tr heaptrack.$^.* |tail -1` & + + + +######################################################################## +# get the detailed status of all optimization flags +info: + echo "detailed status of all optimization flags" + $(CXX) --version + $(CXX) -Q $(CXXFLAGS) --help=optimizers diff --git a/ex1/GCC_default.mk b/ex1/GCC_default.mk new file mode 100644 index 0000000..803c060 --- /dev/null +++ b/ex1/GCC_default.mk @@ -0,0 +1,183 @@ +# Basic Defintions for using GNU-compiler suite sequentially +# requires setting of COMPILER=GCC_ + +CC = gcc +CXX = g++ +F77 = gfortran +LINKER = ${CXX} + +WARNINGS = -Wall -pedantic -Wextra -Weffc++ -Woverloaded-virtual -Wfloat-equal -Wshadow \ + -Wredundant-decls -Winline -fmax-errors=1 +# -Wunreachable-code +CXXFLAGS += -ffast-math -O3 -march=native -std=c++17 ${WARNINGS} +#CXXFLAGS += -Ofast -funroll-all-loops -std=c++17 ${WARNINGS} +#-msse3 +# -ftree-vectorizer-verbose=2 -DNDEBUG +# -ftree-vectorizer-verbose=5 +# -ftree-vectorize -fdump-tree-vect-blocks=foo.dump -fdump-tree-pre=stderr + +# CFLAGS = -ffast-math -O3 -DNDEBUG -msse3 -fopenmp -fdump-tree-vect-details +# CFLAGS = -ffast-math -O3 -funroll-loops -DNDEBUG -msse3 -fopenmp -ftree-vectorizer-verbose=2 +# #CFLAGS = -ffast-math -O3 -DNDEBUG -msse3 -fopenmp +# FFLAGS = -ffast-math -O3 -DNDEBUG -msse3 -fopenmp +# LFLAGS = -ffast-math -O3 -DNDEBUG -msse3 -fopenmp +LINKFLAGS += -O3 + +#architecture +#CPU = -march=znver2 +CXXFLAGS += ${CPU} +LINKFLAGS += ${CPU} + +# different libraries in Ubuntu or manajaró +ifndef UBUNTU +UBUNTU=1 +endif + +# BLAS, LAPACK +ifeq ($(UBUNTU),1) +LINKFLAGS += -llapack -lblas +# -lopenblas +else +# on archlinux +LINKFLAGS += -llapack -lopenblas -lcblas +endif + +# interprocedural optimization +CXXFLAGS += -flto +LINKFLAGS += -flto + +# for debugging purpose (save code) +# -fsanitize=leak # only one out the three can be used +# -fsanitize=address +# -fsanitize=thread +SANITARY = -fsanitize=address -fsanitize=undefined -fsanitize=null -fsanitize=return \ + -fsanitize=bounds -fsanitize=alignment -fsanitize=float-divide-by-zero -fsanitize=float-cast-overflow \ + -fsanitize=bool -fsanitize=enum -fsanitize=vptr +#CXXFLAGS += ${SANITARY} +#LINKFLAGS += ${SANITARY} + +# profiling tools +#CXXFLAGS += -pg +#LINKFLAGS += -pg + + +default: ${PROGRAM} + +${PROGRAM}: ${OBJECTS} + $(LINKER) $^ ${LINKFLAGS} -o $@ + +clean: + @rm -f ${PROGRAM} ${OBJECTS} + +clean_all:: clean + -@rm -f *_ *~ *.bak *.log *.out *.tar *.orig *.optrpt + -@rm -rf html + +run: clean ${PROGRAM} +#run: ${PROGRAM} +# time ./${PROGRAM} ${PARAMS} + ./${PROGRAM} ${PARAMS} + +# tar the current directory +MY_DIR = `basename ${PWD}` +tar: clean_all + @echo "Tar the directory: " ${MY_DIR} + @cd .. ;\ + tar cf ${MY_DIR}.tar ${MY_DIR} *default.mk ;\ + cd ${MY_DIR} +# tar cf `basename ${PWD}`.tar * +#find . -size +10M > large_files +#--exclude-from ${MY_DIR}/large_files + +zip: clean + @echo "Zip the directory: " ${MY_DIR} + @cd .. ;\ + zip -r ${MY_DIR}.zip ${MY_DIR} *default.mk ;\ + cd ${MY_DIR} + +doc: + doxygen Doxyfile + +######################################################################### +.SUFFIXES: .f90 + +.cpp.o: + $(CXX) -c $(CXXFLAGS) -o $@ $< +# $(CXX) -c $(CXXFLAGS) -o $@ $< 2>&1 | tee -a $<.log +# $(CXX) -c $(CXXFLAGS) -o $@ $< 2>&1 | tee -a $(<:.cpp=.log) + +.c.o: + $(CC) -c $(CFLAGS) -o $@ $< + +.f.o: + $(F77) -c $(FFLAGS) -o $@ $< + +.f90.o: + $(F77) -c $(FFLAGS) -o $@ $< + +################################################################################################## +# some tools +# Cache behaviour (CXXFLAGS += -g tracks down to source lines; no -pg in linkflags) +cache: ${PROGRAM} + valgrind --tool=callgrind --simulate-cache=yes ./$^ ${PARAMS} +# kcachegrind callgrind.out. & + kcachegrind `ls -1tr callgrind.out.* |tail -1` + +# Check for wrong memory accesses, memory leaks, ... +# use smaller data sets +# no "-pg" in compile/link options +mem: ${PROGRAM} + valgrind -v --leak-check=yes --tool=memcheck --undef-value-errors=yes --track-origins=yes --log-file=$^.addr.out --show-reachable=yes ./$^ ${PARAMS} +# Graphical interface +# valkyrie + +# Simple run time profiling of your code +# CXXFLAGS += -g -pg +# LINKFLAGS += -pg +prof: ${PROGRAM} + perf record ./$^ ${PARAMS} + perf report +# gprof -b ./$^ > gp.out +# kprof -f gp.out -p gprof & + +# perf in Ubuntu 20.04: https://www.howtoforge.com/how-to-install-perf-performance-analysis-tool-on-ubuntu-20-04/ +# * install +# * sudo vi /etc/sysctl.conf +# add kernel.perf_event_paranoid = 0 + +#Trace your heap: +#> heaptrack ./main.GCC_ +#> heaptrack_gui heaptrack.main.GCC_..gz +heap: ${PROGRAM} + heaptrack ./$^ ${PARAMS} + heaptrack_gui `ls -1tr heaptrack.$^.* |tail -1` & + +codecheck: $(SOURCES) + cppcheck --enable=all --inconclusive --std=c++17 --suppress=missingIncludeSystem $^ + + +######################################################################## +# get the detailed status of all optimization flags +info: + echo "detailed status of all optimization flags" + $(CXX) --version + $(CXX) -Q $(CXXFLAGS) --help=optimizers + lscpu + inxi -C + lstopo + +# Excellent hardware info +# hardinfo +# Life monitoring of CPU frequency etc. +# sudo i7z + +# Memory consumption +# vmstat -at -SM 3 +# xfce4-taskmanager + + +# https://www.tecmint.com/check-linux-cpu-information/ +#https://www.tecmint.com/monitor-cpu-and-gpu-temperature-in-ubuntu/ + +# Debugging: +# https://wiki.archlinux.org/index.php/Debugging diff --git a/ex1/ICC_default.mk b/ex1/ICC_default.mk new file mode 100644 index 0000000..d4bd4db --- /dev/null +++ b/ex1/ICC_default.mk @@ -0,0 +1,137 @@ +# Basic Defintions for using INTEL compiler suite sequentially +# requires setting of COMPILER=ICC_ + +#BINDIR = /opt/intel/bin/ + +# special on my sony [GH] +#BINDIR = /opt/save.intel/bin/ +# very special on my sony [GH] +# FIND_LIBS = -L /opt/save.intel/composer_xe_2013.1.117/mkl/lib/intel64/libmkl_intel_lp64.so + +# Error with g++-4.8 using icpc14.0,x: +# find directory wherein bits/c++config.h is located +# 'locate bits/c++config.h' +#FOUND_CONFIG = -I/usr/include/x86_64-linux-gnu/c++/4.8 + + +CC = ${BINDIR}icc +CXX = ${BINDIR}icpc +F77 = ${BINDIR}ifort +LINKER = ${CXX} + + +WARNINGS = -Wall -Weffc++ -Woverloaded-virtual -Wfloat-equal -Wshadow -wd2015,2012 -wn3 +# -Winline -Wredundant-decls -Wunreachable-code +CXXFLAGS += -O3 -fargument-noalias -std=c++17 -DNDEBUG ${WARNINGS} -mkl ${FOUND_CONFIG} +# profiling tools +#CXXFLAGS += -pg +#LINKFLAGS += -pg +# -vec-report=3 +# -qopt-report=5 -qopt-report-phase=vec +# -guide -parallel +# -guide-opts=string -guide-par[=n] -guide-vec[=n] +# -auto-p32 -simd +CXXFLAGS += -align + +# use MKL by INTEL +# https://software.intel.com/content/www/us/en/develop/documentation/mkl-linux-developer-guide/top/linking-your-application-with-the-intel-math-kernel-library/linking-quick-start/using-the-mkl-compiler-option.html +# https://software.intel.com/content/www/us/en/develop/articles/intel-mkl-link-line-advisor.html +# LINKFLAGS += -L${BINDIR}../composer_xe_2013.1.117/mkl/lib/intel64 -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread +#LINKFLAGS += -O3 -L/opt/intel/mkl/lib -mkl +LINKFLAGS += -O3 -mkl=sequential + +# interprocedural optimization +CXXFLAGS += -ipo +LINKFLAGS += -ipo + +# annotated assembler file +ANNOTED = -fsource-asm -S + +default: ${PROGRAM} + +${PROGRAM}: ${OBJECTS} + $(LINKER) $^ ${LINKFLAGS} -o $@ + +clean: + rm -f ${PROGRAM} ${OBJECTS} + +clean_all:: clean + @rm -f *_ *~ *.bak *.log *.out *.tar + +run: clean ${PROGRAM} + ./${PROGRAM} + +# tar the current directory +MY_DIR = `basename ${PWD}` +tar: clean_all + @echo "Tar the directory: " ${MY_DIR} + @cd .. ;\ + tar cf ${MY_DIR}.tar ${MY_DIR} *default.mk ;\ + cd ${MY_DIR} +# tar cf `basename ${PWD}`.tar * + +doc: + doxygen Doxyfile + +######################################################################### + +.cpp.o: + $(CXX) -c $(CXXFLAGS) -o $@ $< + +.c.o: + $(CC) -c $(CFLAGS) -o $@ $< + +.f.o: + $(F77) -c $(FFLAGS) -o $@ $< + +################################################################################################## +# # some tools +# # Cache behaviour (CXXFLAGS += -g tracks down to source lines) +# cache: ${PROGRAM} +# valgrind --tool=callgrind --simulate-cache=yes ./$^ +# # kcachegrind callgrind.out. & +# +# # Check for wrong memory accesses, memory leaks, ... +# # use smaller data sets +# mem: ${PROGRAM} +# valgrind -v --leak-check=yes --tool=memcheck --undef-value-errors=yes --track-origins=yes --log-file=$^.addr.out --show-reachable=yes ./$^ +# +# # Simple run time profiling of your code +# # CXXFLAGS += -g -pg +# # LINKFLAGS += -pg +# prof: ${PROGRAM} +# ./$^ +# gprof -b ./$^ > gp.out +# # kprof -f gp.out -p gprof & +# + + +mem: inspector +prof: amplifier +cache: amplifier + +gap_par_report: + ${CXX} -c -guide -parallel $(SOURCES) 2> gap.txt + +# GUI for performance report +amplifier: ${PROGRAM} + echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope +# alternatively to the solution above: + #edit file /etc/sysctl.d/10-ptrace.conf and set variable kernel.yama.ptrace_scope variable to 0 . + amplxe-gui & + +# GUI for Memory and Thread analyzer (race condition) +inspector: ${PROGRAM} + echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope + inspxe-gui & + +advisor: + echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope + advixe-gui & + +icc-info: + icpc -# main.cpp + + + + diff --git a/ex1/ONEAPI_default.mk b/ex1/ONEAPI_default.mk new file mode 100644 index 0000000..fe7b3fe --- /dev/null +++ b/ex1/ONEAPI_default.mk @@ -0,0 +1,176 @@ +# Basic Defintions for using INTEL compiler suite sequentially +# requires setting of COMPILER=ONEAPI_ + +# https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/onemkl/link-line-advisor.html +# requires +# source /opt/intel/oneapi/setvars.sh +# on AMD: export MKL_DEBUG_CPU_TYPE=5 + +#BINDIR = /opt/intel/oneapi/compiler/latest/linux/bin/ +#MKL_ROOT = /opt/intel/oneapi/mkl/latest/ +#export KMP_AFFINITY=verbose,compact + +CC = ${BINDIR}icc +CXX = ${BINDIR}dpcpp +F77 = ${BINDIR}ifort +LINKER = ${CXX} + +## Compiler flags +WARNINGS = -Wall -Weffc++ -Woverloaded-virtual -Wfloat-equal -Wshadow -pedantic +WARNINGS += -Wpessimizing-move -Wredundant-move +#-wd2015,2012,2014 -wn3 +# -Winline -Wredundant-decls -Wunreachable-code +# -qopt-subscript-in-range +# -vec-threshold0 + +CXXFLAGS += -O3 -std=c++17 ${WARNINGS} +#CXXFLAGS += -DMKL_ILP64 -I"${MKLROOT}/include" +#CXXFLAGS += -DMKL_ILP32 -I"${MKLROOT}/include" +LINKFLAGS += -O3 + +# interprocedural optimization +CXXFLAGS += -ipo +LINKFLAGS += -ipo +LINKFLAGS += -flto + +# annotated Assembler file +ANNOTED = -fsource-asm -S + +#architecture +CPU = -march=core-avx2 +#CPU += -mtp=zen +# -xCORE-AVX2 +# -axcode COMMON-AVX512 -axcode MIC-AVX512 -axcode CORE-AVX512 -axcode CORE-AVX2 +CXXFLAGS += ${CPU} +LINKFLAGS += ${CPU} + +# use MKL by INTEL +# https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/onemkl/link-line-advisor.html +# sequential MKL +# use the 32 bit interface (LP64) instead of 64 bit interface (ILP64) +CXXFLAGS += -qmkl=sequential -UMKL_ILP64 +LINKFLAGS += -O3 -qmkl=sequential -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread +#LINKFLAGS += -O3 -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread + +# shared libs: https://aur.archlinux.org/packages/intel-oneapi-compiler-static +# install intel-oneapi-compiler-static +# or +LINKFLAGS += -shared-intel + + +OPENMP = -qopenmp +CXXFLAGS += ${OPENMP} +LINKFLAGS += ${OPENMP} + + +# profiling tools +#CXXFLAGS += -pg +#LINKFLAGS += -pg +# -vec-report=3 +# -qopt-report=5 -qopt-report-phase=vec -qopt-report-phase=openmp +# -guide -parallel +# -guide-opts=string -guide-par[=n] -guide-vec[=n] +# -auto-p32 -simd + +# Reports: https://software.intel.com/en-us/articles/getting-the-most-out-of-your-intel-compiler-with-the-new-optimization-reports +#CXXFLAGS += -qopt-report=5 -qopt-report-phase=vec,par +#CXXFLAGS += -qopt-report=5 -qopt-report-phase=cg +# Redirect report from *.optrpt to stderr +# -qopt-report-file=stderr +# Guided paralellization +# -guide -parallel +# -guide-opts=string -guide-par[=n] -guide-vec[=n] +# -auto-p32 -simd + +## run time checks +# https://www.intel.com/content/www/us/en/develop/documentation/fortran-compiler-oneapi-dev-guide-and-reference/top/compiler-reference/compiler-options/offload-openmp-and-parallel-processing-options/par-runtime-control-qpar-runtime-control.html + + +default: ${PROGRAM} + +${PROGRAM}: ${OBJECTS} + $(LINKER) $^ ${LINKFLAGS} -o $@ + +clean: + rm -f ${PROGRAM} ${OBJECTS} *.optrpt + +clean_all:: clean + @rm -f *_ *~ *.bak *.log *.out *.tar + +run: clean ${PROGRAM} + ./${PROGRAM} + +# tar the current directory +MY_DIR = `basename ${PWD}` +tar: clean_all + @echo "Tar the directory: " ${MY_DIR} + @cd .. ;\ + tar cf ${MY_DIR}.tar ${MY_DIR} *default.mk ;\ + cd ${MY_DIR} +# tar cf `basename ${PWD}`.tar * + +doc: + doxygen Doxyfile + +######################################################################### + +.cpp.o: + $(CXX) -c $(CXXFLAGS) -o $@ $< + +.c.o: + $(CC) -c $(CFLAGS) -o $@ $< + +.f.o: + $(F77) -c $(FFLAGS) -o $@ $< + +################################################################################################## +# some tools +# Cache behaviour (CXXFLAGS += -g tracks down to source lines) +# https://software.intel.com/content/www/us/en/develop/documentation/vtune-help/top/analyze-performance/microarchitecture-analysis-group/memory-access-analysis.html + +mem: inspector +prof: vtune +cache: inspector + +gap_par_report: + ${CXX} -c -guide -parallel $(SOURCES) 2> gap.txt + +# GUI for performance report +amplifier: ${PROGRAM} + echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope + echo 0 | sudo tee /proc/sys/kernel/perf_event_paranoid + amplxe-gui & + +# GUI for Memory and Thread analyzer (race condition) +inspector: ${PROGRAM} + echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope +# inspxe-gui & + vtune-gui ./${PROGRAM} & + +advisor: + source /opt/intel/oneapi/advisor/2021.2.0/advixe-vars.sh +# /opt/intel/oneapi/advisor/latest/bin64/advixe-gui & + advisor --collect=survey ./${PROGRAM} +# advisor --collect=roofline ./${PROGRAM} + advisor --report=survey --project-dir=./ src:r=./ --format=csv --report-output=./out/survey.csv + +vtune: + echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope +# https://software.intel.com/en-us/articles/intel-advisor-2017-update-1-what-s-new + export ADVIXE_EXPERIMENTAL=roofline + vtune -collect hotspots ./${PROGRAM} + vtune -report hotspots -r r000hs > vtune.out +# vtune-gui ./${PROGRAM} & + +icc-info: + icpc -# main.cpp + +# MKL on AMD +# https://www.computerbase.de/2019-11/mkl-workaround-erhoeht-leistung-auf-amd-ryzen/ +# +# https://sites.google.com/a/uci.edu/mingru-yang/programming/mkl-has-bad-performance-on-an-amd-cpu +# export MKL_DEBUG_CPU_TYPE=5 +# export MKL_NUM_THRAEDS=1 +# export MKL_DYNAMIC=false +# on Intel compiler +# http://publicclu2.blogspot.com/2013/05/intel-complier-suite-reference-card.html diff --git a/ex1/PGI_default.mk b/ex1/PGI_default.mk new file mode 100644 index 0000000..40760e5 --- /dev/null +++ b/ex1/PGI_default.mk @@ -0,0 +1,93 @@ +# Basic Defintions for using PGI-compiler suite sequentially +# requires setting of COMPILER=PGI_ +# OPTIRUN = optirun + + +CC = pgcc +CXX = pgc++ +F77 = pgfortran +LINKER = ${CXX} + +# on mephisto: +#CXXFLAGS += -I/share/apps/atlas/include +#LINKFLAGS += -L/share/apps/atlas/lib +#LINKFLAGS += -lcblas -latlas + +#LINKFLAGS += -lblas +# Der Header muss mit extern "C" versehen werden, damit g++ alles findet. + +WARNINGS = -Minform=warn +# -Wall -pedantic -Wextra -Weffc++ -Woverloaded-virtual -W -Wfloat-equal -Wshadow -Wredundant-decls +# -pedantic -Wunreachable-code -Wextra -Winline +# -Wunreachable-code + +#PGI_PROFILING = -Minfo=ccff,loop,vect,opt,intensity,mp,accel +PGI_PROFILING = -Minfo=ccff,accel,ipa,loop,lre,mp,opt,par,unified,vect,intensity +# -Minfo +# -Mprof=time +# -Mprof=lines +# take care with option -Msafeptr +CXXFLAGS += -O3 -std=c++17 ${WARNINGS} +#CXXFLAGS += -O3 -std=c++11 -DNDEBUG ${PGI_PROFILING} ${WARNINGS} +# -fastsse -fargument-noalias ${WARNINGS} -msse3 -vec-report=3 + +default: ${PROGRAM} + +${PROGRAM}: ${OBJECTS} + $(LINKER) $^ ${LINKFLAGS} -o $@ + +clean: + @rm -f ${PROGRAM} ${OBJECTS} + +clean_all:: clean + @rm -f *_ *~ *.bak *.log *.out *.tar + +run: clean ${PROGRAM} + ./${PROGRAM} + +# tar the current directory +MY_DIR = `basename ${PWD}` +tar: clean_all + @echo "Tar the directory: " ${MY_DIR} + @cd .. ;\ + tar cf ${MY_DIR}.tar ${MY_DIR} *default.mk ;\ + cd ${MY_DIR} +# tar cf `basename ${PWD}`.tar * + +doc: + doxygen Doxyfile + +######################################################################### + +.cpp.o: + $(CXX) -c $(CXXFLAGS) -o $@ $< + +.c.o: + $(CC) -c $(CFLAGS) -o $@ $< + +.f.o: + $(F77) -c $(FFLAGS) -o $@ $< + +################################################################################################## +# # some tools +# # Simple run time profiling of your code +# # CXXFLAGS += -g -pg +# # LINKFLAGS += -pg + + +# Profiling options PGI, see: pgcollect -help +# CPU_PROF = -allcache +CPU_PROF = -time +# GPU_PROF = -cuda=gmem,branch,cc13 -cudainit +#GPU_PROF = -cuda=branch:cc20 +# +PROF_FILE = pgprof.out + +cache: prof + +prof: ${PROGRAM} + ${OPTIRUN} ${BINDIR}pgcollect $(CPU_PROF) ./$^ + ${OPTIRUN} ${BINDIR}pgprof -exe ./$^ $(PROF_FILE) & + +info: + pgaccelinfo -v diff --git a/ex1/ex1A_mean_values/.vscode/tasks.json b/ex1/ex1A_mean_values/.vscode/tasks.json new file mode 100644 index 0000000..08d9005 --- /dev/null +++ b/ex1/ex1A_mean_values/.vscode/tasks.json @@ -0,0 +1,28 @@ +{ + "tasks": [ + { + "type": "cppbuild", + "label": "C/C++: gcc build active file", + "command": "/usr/bin/gcc", + "args": [ + "-fdiagnostics-color=always", + "-g", + "${file}", + "-o", + "${fileDirname}/${fileBasenameNoExtension}" + ], + "options": { + "cwd": "${fileDirname}" + }, + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + }, + "detail": "Task generated by Debugger." + } + ], + "version": "2.0.0" +} \ No newline at end of file diff --git a/ex1/ex1A_mean_values/Makefile b/ex1/ex1A_mean_values/Makefile new file mode 100644 index 0000000..b854f57 --- /dev/null +++ b/ex1/ex1A_mean_values/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_ + + +SOURCES = main.cpp ../ex1A_mean_values/means.cpp +OBJECTS = $(SOURCES:.cpp=.o) + +PROGRAM = main.${COMPILER} + +# uncomment the next to lines for debugging and detailed performance analysis +CXXFLAGS += -g +LINKFLAGS += -g +# do not use -pg with PGI compilers + +ifndef COMPILER + COMPILER=GCC_ +endif + +include ../${COMPILER}default.mk diff --git a/ex1/ex1A_mean_values/main.GCC_ b/ex1/ex1A_mean_values/main.GCC_ new file mode 100755 index 0000000000000000000000000000000000000000..bb538473f520eed2c6668a8aba87e4da493c02ab GIT binary patch literal 79184 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 literal 0 HcmV?d00001 diff --git a/ex1/ex1A_mean_values/main.cpp b/ex1/ex1A_mean_values/main.cpp new file mode 100644 index 0000000..03da30f --- /dev/null +++ b/ex1/ex1A_mean_values/main.cpp @@ -0,0 +1,35 @@ +#include "means.h" +#include +#include +using namespace std; + +int main(int argc, char **argv) +{ + double arithmetic_mean, geometric_mean, harmonic_mean; + + // Fixed version + calculate_means(1, 4, 16, arithmetic_mean, geometric_mean, harmonic_mean); + cout << arithmetic_mean << ", " << geometric_mean << ", " << harmonic_mean << endl; + + calculate_means(2, 3, 5, arithmetic_mean, geometric_mean, harmonic_mean); + cout << arithmetic_mean << ", " << geometric_mean << ", " << harmonic_mean << endl; + + calculate_means(1000, 4000, 16000, arithmetic_mean, geometric_mean, harmonic_mean); + cout << arithmetic_mean << ", " << geometric_mean << ", " << harmonic_mean << endl; + cout << "--------------------------------" << endl; + + + + // Scalable version + calculate_means(vector {1, 4, 16}, arithmetic_mean, geometric_mean, harmonic_mean); + cout << arithmetic_mean << ", " << geometric_mean << ", " << harmonic_mean << endl; + + calculate_means(vector {2, 3, 5}, arithmetic_mean, geometric_mean, harmonic_mean); + cout << arithmetic_mean << ", " << geometric_mean << ", " << harmonic_mean << endl; + + calculate_means(vector {1000, 4000, 16000}, arithmetic_mean, geometric_mean, harmonic_mean); + cout << arithmetic_mean << ", " << geometric_mean << ", " << harmonic_mean << endl; + + + return 0; +} diff --git a/ex1/ex1A_mean_values/main.o b/ex1/ex1A_mean_values/main.o new file mode 100644 index 0000000000000000000000000000000000000000..3e4f266fb0f0fa01973c87c2a4f86945db2d957f GIT binary patch literal 108064 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 krvqk@%>t96nwoG5V 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%0D_K4_*TmJ3Vvv_CA<s?dg6^(Jn1g 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 F{{kkO?L7bh literal 0 HcmV?d00001 diff --git a/ex1/ex1A_mean_values/means.cpp b/ex1/ex1A_mean_values/means.cpp new file mode 100644 index 0000000..903a9e2 --- /dev/null +++ b/ex1/ex1A_mean_values/means.cpp @@ -0,0 +1,30 @@ +#include "../ex1A_mean_values/means.h" +#include +#include + +void calculate_means(int a, int b, int c, double &am, double &gm, double &hm) +{ + am = (a + b + c)/3.0; + gm = exp((log(a)+log(b)+log(c))/3); + hm = 3.0/(1.0/a + 1.0/b + 1.0/c); +} + +void calculate_means(std::vector numbers, double &am, double &gm, double &hm) +{ + int n = numbers.size(); + + am = 0.; + gm = 0.; + hm = 0.; + + for (int i = 0; i < n; ++i) + { + am += numbers[i]; + gm += log(numbers[i]); + hm += 1.0/numbers[i]; + } + + am /= n; + gm = exp(gm/n); + hm = n/hm; +} \ No newline at end of file diff --git a/ex1/ex1A_mean_values/means.h b/ex1/ex1A_mean_values/means.h new file mode 100644 index 0000000..4a12964 --- /dev/null +++ b/ex1/ex1A_mean_values/means.h @@ -0,0 +1,23 @@ +#pragma once +#include + +/** + This function calculates arithmetic mean, geometric mean and harmonic mean of three integers. + @param[in] a first integer + @param[in] b second integer + @param[in] c third integer + @param[out] am arithmetic mean + @param[out] gm geometric mean + @param[out] hm harmonic mean +*/ +void calculate_means(int a, int b, int c, double &am, double &gm, double &hm); + +/** + This function calculates arithmetic mean, geometric mean and harmonic mean of an integer vector. + @param[in] numbers vector containing integers + @param[out] am arithmetic mean + @param[out] gm geometric mean + @param[out] hm harmonic mean +*/ +void calculate_means(std::vector numbers, double &am, double &gm, double &hm); + diff --git a/ex1/ex1A_mean_values/means.o b/ex1/ex1A_mean_values/means.o new file mode 100644 index 0000000000000000000000000000000000000000..035493ba1a04ae0b4334d2544d8e5c1d8f2a0472 GIT binary patch literal 38416 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 literal 0 HcmV?d00001 diff --git a/ex1/ex1B_data-IO_and_vectors/main.cpp b/ex1/ex1B_data-IO_and_vectors/main.cpp new file mode 100644 index 0000000..0acb48f --- /dev/null +++ b/ex1/ex1B_data-IO_and_vectors/main.cpp @@ -0,0 +1,53 @@ +#include "../ex1A_mean_values/means.h" +#include +#include +#include +#include +#include +using namespace std; + + +int main(int argc, char **argv) +{ + // read vector from file + vector data_vector = {}; + + ifstream input_stream("data_1.txt"); + + int line; + while(input_stream >> line) + { + data_vector.push_back(line); + } + data_vector.shrink_to_fit(); + + + // calculate minimum and maximum + vector::iterator min_it = min_element(data_vector.begin(), data_vector.end()); + vector::iterator max_it = max_element(data_vector.begin(), data_vector.end()); + + // calculate arithmetic mean, geometric mean and harmonic mean + double am, gm, hm; + calculate_means(data_vector, am, gm, hm); + + + // calculate standard deviation + double sd = 0.; + int n = data_vector.size(); + for (int i = 0; i < n; ++i) + { + sd += pow(data_vector[i] - am, 2); + } + sd = sqrt(sd/n); + + + // print results + cout << "minimum: " << *min_it << endl; + cout << "maximum: " << *max_it << endl; + cout << "arithmetic mean: " << am << endl; + cout << "geometric mean: " << gm << endl; + cout << "harmonic mean: " << hm << endl; + cout << "standard deviation: " << sd << endl; + + return 0; +} diff --git a/ex1/ex1B_data-IO_and_vectors/main.o b/ex1/ex1B_data-IO_and_vectors/main.o new file mode 100644 index 0000000000000000000000000000000000000000..ba487ec86674cc78a9265d033e162273c84b8d90 GIT binary patch literal 259656 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 literal 0 HcmV?d00001 diff --git a/ex1/ex1C_summation_of_specified_numbers/main.cpp b/ex1/ex1C_summation_of_specified_numbers/main.cpp new file mode 100644 index 0000000..f469cd2 --- /dev/null +++ b/ex1/ex1C_summation_of_specified_numbers/main.cpp @@ -0,0 +1,31 @@ +#include "special_sum.h" +#include "../utils/timing.h" +#include +#include +#include +using namespace std; + +int main(int argc, char **argv) +{ + // check results and compare speeds + for(size_t n : {15, 1001, 1432987}) + { + cout << "n = " << n << endl; + size_t sum_1, sum_2; + + tic(); + for(size_t i = 0; i < 1000; ++i) + sum_1 = special_sum_loop(n); + double time_1 = toc(); + + tic(); + for(size_t i = 0; i < 1000; ++i) + sum_2 = special_sum_noloop(n); + double time_2 = toc(); + + cout << "loop: " << sum_1 << "\t\tDuration: " << time_1 << endl; + cout << "no loop: " << sum_2 << "\t\tDuration: " << time_2 << endl << "---------------------------------------------------" << endl; + } + + return 0; +} diff --git a/ex1/ex1C_summation_of_specified_numbers/special_sum.cpp b/ex1/ex1C_summation_of_specified_numbers/special_sum.cpp new file mode 100644 index 0000000..d2860ff --- /dev/null +++ b/ex1/ex1C_summation_of_specified_numbers/special_sum.cpp @@ -0,0 +1,28 @@ +#include "special_sum.h" + +size_t gauss_sum(size_t n) +{ + return (n*(n+1))/2; +} + +size_t special_sum_loop(size_t n) +{ + size_t sum = 0; + for (size_t i = 1; i < n+1; ++i) + { + if (i % 3 == 0 || i % 5 == 0) + { + sum += i; + } + } + return sum; +} + +size_t special_sum_noloop(size_t n) +{ + size_t factor_3 = gauss_sum(n/3); // dividing int by int automatically gets rounded off + size_t factor_5 = gauss_sum(n/5); + size_t factor_15 = gauss_sum(n/15); + + return factor_3*3 + factor_5*5 - factor_15*15; +} \ No newline at end of file diff --git a/ex1/ex1C_summation_of_specified_numbers/special_sum.h b/ex1/ex1C_summation_of_specified_numbers/special_sum.h new file mode 100644 index 0000000..a77964b --- /dev/null +++ b/ex1/ex1C_summation_of_specified_numbers/special_sum.h @@ -0,0 +1,18 @@ +#include + +/** + This function returns the sum of all positive integers less or equal n which are a multiples of 3 or of 5, WITH using a loop. + @param[in] n + @param[out] M +*/ +size_t special_sum_loop(size_t n); + + +/** + This function returns the sum of all positive integers less or equal n which are a multiples of 3 or of 5, WITHOUT using a loop. + Example: For n=15, we have 60 = 3+5+6+9+10+12+15 = (1+2+3+4+5)*3 + (1+2+3)*5 - 1*15 + Formula: M = (\sum_{i=1}^{k_3} i)*3 + (\sum_{i=1}^{k_5} i)*5 - (\sum_{i=1}^{k_15} i)*15 + @param[in] n + @param[out] M +*/ +size_t special_sum_noloop(size_t n); \ No newline at end of file diff --git a/ex1/ex1D_kahan_summation/main b/ex1/ex1D_kahan_summation/main new file mode 100755 index 0000000000000000000000000000000000000000..9b4ff375f7ab6d5bdcc61e29e6a83b21e43b365a GIT binary patch literal 17200 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 +#include +using namespace std; + +int main(int argc, char **argv) +{ + for(size_t i = 1; i < 8; ++i) + { + size_t n = pow(10,i); + vector x(n); + for (size_t k = 0; k < n; ++k) + x[k] = 1.0/(k + 1); + + + // compute scalar products + double sum_1 = scalar(x, x); + double sum_2 = Kahan_skalar(x, x); + + // compute error + double err_1 = abs(sum_1 - pow(M_PI,2)/6); + double err_2 = abs(sum_2 - pow(M_PI,2)/6); + + cout << "n = " << n << endl; + cout << "Normal scalar product: " << sum_1 << "\terror: " << err_1 << endl; + cout << "Kahan scalar product: " << sum_2 << "\terror: " << err_2 << endl; + cout << endl; + } + + + + return 0; +} diff --git a/ex1/ex1D_kahan_summation/mylib.cpp b/ex1/ex1D_kahan_summation/mylib.cpp new file mode 100644 index 0000000..11fc394 --- /dev/null +++ b/ex1/ex1D_kahan_summation/mylib.cpp @@ -0,0 +1,34 @@ +#include "mylib.h" +#include // assert() +#include +#include +using namespace std; + +double scalar(vector const &x, vector const &y) +{ + assert(x.size() == y.size()); + size_t const N = x.size(); + double sum = 0.0; + for (size_t i = 0; i < N; ++i) + { + sum += x[i] * y[i]; + } + return sum; +} + + + +double Kahan_skalar(vector const &x, vector const &y) +{ + double sum = 0; + double c = 0; + size_t n = x.size(); + for (size_t i = 0; i < n; ++i) + { + double z = x[i]*y[i] - c; // c is the part that got lost in the last iteration + double t = sum + z; // when adding sum + z, the lower digits are lost if sum is large + c = (t - sum) - z; // now we recover the lower digits to add in the next iteration + sum = t; + } + return sum; +} \ No newline at end of file diff --git a/ex1/ex1D_kahan_summation/mylib.h b/ex1/ex1D_kahan_summation/mylib.h new file mode 100644 index 0000000..7914250 --- /dev/null +++ b/ex1/ex1D_kahan_summation/mylib.h @@ -0,0 +1,30 @@ +#ifndef FILE_MYLIB +#define FILE_MYLIB +#include + +/** Inner product + @param[in] x vector + @param[in] y vector + @return resulting Euclidian inner product +*/ +double scalar(std::vector const &x, std::vector const &y); + +/** Inner product using BLAS routines + @param[in] x vector + @param[in] y vector + @return resulting Euclidian inner product +*/ +double scalar_cblas(std::vector const &x, std::vector const &y); +float scalar_cblas(std::vector const &x, std::vector const &y); + + +/** L_2 Norm of a vector + @param[in] x vector + @return resulting Euclidian norm +*/ +double norm(std::vector const &x); + +double Kahan_skalar(std::vector const &x, std::vector const &y); + + +#endif diff --git a/ex1/ex1E_vector_vs_list/main b/ex1/ex1E_vector_vs_list/main new file mode 100755 index 0000000000000000000000000000000000000000..e451b42e7cb5b7d0394bd697cd90474e7692a46d GIT binary patch literal 249712 zcmeEvdt6mT_xIlWaNNK~!BRsr#rrkI`(5#Z9!(8z#bX*OqEZNoXjEz%Y7$apW@a}l zGb>9fD>5^@BxF`(H!4f?F*~Rgm5)(b=l!lVvoGhsvFH7Le*e6mH~bvdUh`eEX3d&4 zYi7^h2k(dy=AC2GVu9&~H++y$PsCe)(^Iq&t;~ zvb|vA5GDITzch&at{~;JgV=K>NO`{??d}euzip86F+ueBg2)dKQciId zgHPa3#~}LCAXwY@LVc}z9u6YkIf(p1wA&I`;Lm^1Kz-#(C9Y5)QPd#)BqhzApOK!l zC~IbBR#K9ZGt+l0G|abn>LEZrzgS&CE>7%AA>+wP zoRpkBGierFke-x0Gb?!>i+1mpnz1Me+EbE{!!l=P-kOw}o|;ACbF;IP7Nle@%1ED? zmYQ{I(vnzFqpzRx%*>g$CZ(sC{-F*|%1T=_`oHT)@?>?3ApTscGGMC5^@SC8cM~PGOV#B#ld&myvOEe8Qwyas|AYoUu4dDuF|-j*1~7 zCuQ|DJB&JT*Oc^IQXx1oWzpjK2nGt7P;{JR%()XWdsmJ8YXko(-t=+I?ByFOZ%9s9Obc657}s@V1oNP%HewJ zC(cnWUCfxrQ7$4&R7r4@Q`_cGqN7~wZv-;KQEvL0ka>>sa8n8B0!KLl$@^}Q_$9L0@1C4mZJs7{3&WUV3Lipd;W*hGIo%~|~ z{Kf$Oo&bJL0KYtdUlPEl2k>(O_!|TG>jL=k0sP1SesBQaJAm&Jz_$(Hn+5QV0{D7< ze7EmM=YDjfC-aK#5kJuX@0C2^ex&_7I&KB$r&^il8Pty+pGvr-k>#Lyp@0YeBRlJwnOf> zAg4}8U8{YnUwI2ax|o7`lQ3KR<}N#uySQ|=CoiN;dsY|k?N;n9gd$IFe7PqdpWG7f zR?HLd72qp~Z-9A~8~;h(luty-XH<9%CQDxY5l=EzW3gl^nNr$m%8{J?swesIZnU6y ze*MXl`;jNN)T5Sr@}_uadpb4XwzJ&cP(-#TZ+i8+2TUV}PM+jhd5*Rmxo?ey@t)jQ z<3Iuo_LRi0jcNzo`SE42b4x*iCx1$rCvV(ZloWb$KOpJI#xh0VElw&v5zb8B{ZmvE0>@SAomF*iE* zpgDfquqKVoJx#TBSQ7bKG1WTm?fi$S>IvBlRNdvTsy{n{#sB=x6u-?DPn725#TUTt z^kTB+6qV&QbZ;X2c<^UYNxpl$)td>7m3SM=>iO=|=(+68R&I!T!{f8a>J76Ez{=hn z#K>8_xzSSf@%5IfH~dvy;GyQ;bhUc3!xq0=7UsoovU<}<^rp{)R&O>y>P-qZ)52%S zb~#y+D6#pcrN~tqC^GNHFG@;|(3^$TyucG6jx08e?I`iy25MEYa!6;Yb@p-#5N>Me zFyc#^^EK6;t)>wy@wS3m?>EG(JV=T0hN07@Tlo^>)C!{$`I@q-c=14R4Z$5!R9wBu zJ}B|l<)++|H&QDUicc~?VcK&Pm6dp7p}oLX>U|9HZnK`;W!0YC#Z{OO_(Xw#je`L2`bK0>}n2$j!RS2mUF5PC|$X%nvN@Pi7KL_Y`L5)u0HE7qGae0&N&z5Tq3Hm zrX9OL?t{ho`0%8Bjy+J~?G0V%{KJx^gJBqswW->U3M{dadlq& zMI*l2zw6||+{NcGa zAv!Pql*mz!qBffHs}{v01!a55`xH0Zxs3qrmKaGO>nR2A21d#hL<$8_0`49tY9!4S zu~ibs_rK1d!T6eulU7PUHMPq4v!gPg);X+4ezhFsL$%&X271+RdAy+|$9pjA?r>s-BED)QUpcY+#jI9+){d(CKD}kd? zGX&9QSwI+~`7&z$9PbWjmWqAcF~L*Z(L8{;9Cy>8I56Coou^oHTFOyE9jw_H_mvi^ zpCjv=Gpxkh8e=V%Lu~Urxf*)!AJ2^g+Mv7wk)I=@0_HN0HD?^y&5^=(PpaV%+h3T# zaKI+nGqle2^59;pPc&-ntx?Ox4CRp{N~6b3|Al6sb7yM}pB$SrLMa-bh*>ZWG|ZDb4t_(Ib19U$>*kP6 z#}N$qla)6{RYzb@zdYzyDF&+;^^2SXhV4D7l|o$+AS9(JpMzHLju}_n>4juUemvL` zZ*$Sm6j4jyxzrwY-cC;a&UUvukA_RU6FDcK8~$7THa}AuF7ZwW^+ppD=#>~A5_TbV z8y|>o!qH@bqmSsKJ=Vb6v-gB-p_rW3INQ-f`e@{E<8@N=sAYEA44A=U_TETJXOqCt?BYm+}r_obW}!$Z{W?ZpR8lo^T}lCBkCFv;R61@{=>kqo1|w;`|)y(APGI zzFk$d=z~ueBdn%)y{WX3Aj|T`$*ILRKEEOEYsp0Bst<3Rm zMe(XNp6GT}yD>Jja91E*o-m9@C zsKs|x*rz&r^!K}^ApSbe_e+8P+6Y@6+GTvynwR}DlpAMLV*i6;+mB7DI3NU9{^0LJ znU}3~8FQ!ua$y;cE;M@znW6gkrhLb@CA3iZnerEpg8y({_&y+d{bv2owfiCZpY{EiHpl_Hc%(=4WZet#j+9qdEi@d&xte=NF3~`%6IR{0Y)MKbL zKYoj&=qqX?AE`ZmF^c0M`32SQPm;`*c$-qwU>vF5?VWk9M)zfiIPU?>4DHAn@3RXL z(Uhp!swlJ-kUQdN>2h|BawpwQ;wVYhn#_iaJQ0*z<2YzQSH>KB*G;$5?1#3xRCGpkI3?&J%+%6BW1|jCS1^63Z7V;3~$A1WF z4HIp0sHDV8x^a|K6uF)bD!6C^Mf$3*vRYC5_QuBTT~rCb<-2Fgd*kz7a$`IO%iq0Y zNz8A!t%S%OqWMo@U*hdZEjb)OU1^V)^it;JO&L|l!@!C;GEumVq6{KDZC0bGMuJ+! zvkSFKygoLPV$ZoMi_s)2@)Dxh8fPY_{Vik8G_-`<7IwELyKB=ZW;pka_WYJ23?()d zBA?wMIsu_!p^m+**{oww!Z1>GOCm_ze@Gw zEUQu$d!2qqLkVaIBT1vlQ}65yFqnLp)-<){e3W-n#cTkFQxQ4&sNiW_%25SFM%zZd z+rl`-SJU*TQ)p-xqxK3_Ahut8>EexkrdV!p_9xbI1K*s8&Hk(0Dh-tx46g}0*pFxt zHgJsm@hu0c*Sb63gzV@ye$=R$ot@`6jt$QOn6Mo}TM(Ci>kV&c;{j1}iU%BDgznN| zJN(C8jz`u;#?A*720b6cDG|=C%%w0Pw|)c**rTM0Dv~G3qv!=X$eA#{iX15!?%L*N zJpNeQ^2SjM56U2`fG3cB+M<3b>Td@Gy(M0Hk%OD-1pPT)63Ug`=&nTCbDUtW4 z(e%kfg@E1ABKXl6_0~|CZlZ|IhMzXUPX+MP+M1~yP>J_3F;1{*3RwnG?##!cnB0i| z@Lm8kE($ABnVqqu%m?e#mLbE}FYSLF!NwbayBIya}aKaX!FQGHwyEW=2!li{2a zZ<^ToQF$3;fl3T?7BE)+{;2w&syrn10c zLJK~+r`2l{)jZCN8GE--3=4OjX0o`af|Pkr^(P9?jzUfDOZi391Xi@Mc16jxDJm4> z4nr~gQwrr>A3C`OV}K7u2b)nzZHTd_+;2UQy5-+g?w?2PSyK(ARUSV2G-Cmwu;A~f zOflNpLSsRJO;Hc$vmGHE*#8SN6j4Z=r8~%6%4Cq_?(;n*hv4)Ij1DT7cvq2SBJFoL!J|}aWwb-|M1V3LKc{3B zQ|O3`CU(H``~uf??#3`wQ5dRfN`c<%dG+Qa78J0isc6{Vr35TXlzdCPUU~+T7mfBR zi2Z_DJPSS$xdB5Qw6Qb1I{P*DtY2fMSx}4^ivp>l5Jp1SP;9T1RtMz1q9xuIunh(p z13g|;hON9RAy&nzB&-jGymLJ;#|?v1V|)5GP9_y^1{u!TpimyZ|Kh=;PpBq)UV~l!(7C6rp$$ST%UH%tK(8-j>QrvY2A zxxxGf@1Pxu+;UM|!QsHiXVeOxWz0rDSzSKwddfMPKKFiM7UvYla;=;*q0)}MCX|;D z%{6nmCM-$pD?E|%9eIMz1x-(wPqoRy{01&rEw%s`_I5II)x9vcay5QY#-O0t@C^qn zbek@rg~_!2WzoAL?4{|4k&-xaE?wJ-@pRxlDDr-WUqbT%?-|lu^EuK}TwLP)isUyE z6Bwzn95?o66u})|efCN;SS_Lv0mb8WhQ=!=zM3qq#(ugy^DElbIQKAd&;^e##+Xeh zbuNtJuI@W{9`NSU^w7d-ca&oeR$-Bgm+O@I#cLL@;f!G8CA=zk5n zL;dXbn~!LoLWIl!jf=xJCX{ywcZyIbByaRF=TF{52-1>2u9*A|PnMw~JX_+uT*y#) zIlK#uc8tgfoWu@^@Lq6=LWdS_FV#8D>!{+93qKhUD^E4hMnde_W{_kHUM0y~%IN@j zR9_QoFxV1rBb-Inh_)#9v=v*`Jl*^4U)&K&h>4bWb~Qi5lLI~w)&1N@;o1D;pL(HI1Fx(K^*`e`m>mtwdA zRV!qyA}-N6OA5Z^_mvRS_G>lo@gQOx{m&Gi{35^w>~+pj>}qZYLuSqib|SUMcXV{m zP~zPJ)d86<3f(~HEv`a)_#k#gC_Teg@Tmuvns-{9?%@rxuS#r9Y2Kh(LKIXxc9i5G zv?_8a->qaJD9I2ukxZoq$wkmd9_F)rn9S>6&nqZL`e~#=M?>UAn{e**c z%oFGX=yaUWa1%V%&b%6H^+o0*J`?0cz?p|?^Z9mc;cE3cJFUbU%DWTkL!QOE#WY1v zOT541x|VKH-JD`{5$^%`cUxo| zgFzIRcwZCejs+NK=J{Q$T)GLHg0gX&MBMX$mxyk!plWL{heReXAok*4l!56`823MP zhnzdT5E=^!yMaXWs2n@6yeYuwrjSx2?Zo8`;dQ)wpp~JN>a;^0c|(YKXC0t_&K69k zWx9;SGT8WXXr(QSb$b>4S&j9;j7u69aY|L?QSEu*HySa1QOwUY@RSZsVNNBN!9;{M z@0!;aJ4Rl*pCEDXitvbnu>VUGq#L%{??v)~hhL86Q|MYAK@I!VnO|sZqe&UYmJ%3f ziFW||CmL)8v7MP!=nlAp`Cz5S+EBYi&_|CK><2n~`L>?skAK$N@yXv>^)y$ttlG$| z-|dVQvFMaF7ixHkHs_Spko);DD}pF+eahx1C^fCD<7Xwk{b?T3;hqEmxg9Pm;vGVc zH-ucbo1aBc!175)QEgkEJNfROg1PoB51(`_`^uasJVN79$2#c{EsAJC3!J&RY;67v zdRIo`iPabfo=P8b_wc407Dc>mS>l~09x-jF>tAr2h?_CKtW; zig&jV6mMno9DbEwF3siFRGlv893kGi%y0N(tfE-A$9<^LT%-&6QYHokZ(Ld&?y5L{ zh`KOr0No?!;w8uYDfsZ~sB#Uf5}LMHb*HSA$h)`~K^+yVpJ+c zO;3w1=1q+9bV7RG_q&D^jm9`Vx2z@=!bVQBQ8tI@;pke6dq}!VgwxxWa zXb0Z8%Y^>G-JrMuuckP$jo?C6FcX7L5ap;FN=jlNjo)pqF&) zGb{or;{;@vSi}f-PaGFqk5wC{qJ+#v?zUfA!(jW}jLUx%LAj>JlEmwREynQ6?Tv0RihwM+e3!hoawjdeGq_jAtRL zfR=dMkcoUk!t4lQ`P>(|CK8W}S9c&BuiYLd*TffDi*g+IjkXL}=kg|cJo!^YNw6(1 zq;zgrNNk$ejFU(#T!=ie;*v~pSMhFs9DGISj$?m+yMoTD1`xbuxQlT#rio-z`jwj)M@fDeunc6<3?`I8&uUJ&iEIEJ@-f~nRc*r6v zqF1vO&gHJ=5(;B~I8Me!Lm#Fd4#=5R{{9Bu4&YquRA{%tD?EZ)PMK?AnIkZA&c(s| z=wHou{OKEx_O3M_hYoNLTtqXO-E$iiiL*VkD3Lr7Fo*9y7_g^}vL+h6Gqb$=S$x41 zF^+D2!f&xtdPu8(P$=e2r0 zn+~6BuctE0>+S=^{(F>~^FV$lHJ9$|>E;_gE%DyYcllVi9|@>$xq$7XH3lPumiD8+ zmzr&|m4;Yl?N)T+lwhq;3ng@`hmrA5B}gkchqub3>Dsxt%6uyJU?1~FgVG;-9%O-< z;lD)}6*r?|VAg>lb}z{nwX8>WC{sSSpTwed4!4vyLJWovqw08c8aJpIZR zVFvT|wA#6j--V!%f^&Lv0t){E~dtu$(H9GkDy|2;A#2=#A857jS-@GQ07sK>8${|o5{rq3Z}4# z%$0BZjg(w`1LuHWgD}zC*J+J;%Za#*g)z`sbIp=B!srmjr^Gvh>gQvu><%tK(ONv) zFNv?Bba%GCz)HM5xvhA-$te~-=;y?df^w`th%HLd{@c@{x19Z#hM{FlNiib0#&{MX zxzJA}Z4$6k!MBpll`X4@g*N9cgxl+aQttI7*WZ4J)MQ}8zu-rzEwr{;-akw1Tv-pqL9~NGP}cmPvlMQP#~bDl#`2?bG754~GdPVW}wN4!HJw_@22B`X|YAq}p)or74qj}B-ozX+&jPCXZX7okGER3QVtx;|oi$donz*;37c}~n$UJ~Tv z(LUG&$Q99VF8L(`bc5ES67R3H{+V+eNkVw<0KWR|S2-5b0AOI&nj(JOwP&s8#80^F z<2ZEB8_j*Bf$&=!OT0+{{;sorUBK9Q&8?F(d%nNfX7WQ<16Nl6)!gv_fU~k#k|<>H zx?eTM0=X<_S+%mfIowulKNrDEVZ3s2#QpF(kDdd@oL0-6J4!i#oOmewkeiwKZ*)0f z6PQO}6-fuac4_x4K#Fb+oNIEBaTANpf4SN`@EXQ#27bXBYqco^?-;I{H#?k+?$=C%FVPyg&(Rt$9d>KK!{c^q@ikhzsLA&>Ii|@}}|sN)7&wkG~pcUM|OT z==h6g>6FQvH{~MIi@d9&XFC=23V_SLCUneUBW8hOvEWKV|<&4@x>SacqStfcnRNyM*XV> zj%?ssKzU581GU*<2A;HogT@ss@Q%DxGw_hVWng~p#amj!INH%u@CFGybG*brVGXHm zP&s?y{2NDW7)bkXBU*nA5sm%x^N$Dq@xVVG_{RhPc;Fuo{NsUtJn)YP{_(&+9{9%t z|9Ig4K@X_>O+ZB%pK?pgl9c4EjLewSMKOyqGP6=<_m5G+7U4g?Av$|;=FF_rjC5R+ zXd3?49zVh4nd#{nSux4@&y2ECV(?$(^zSd#rOnKoo01umHE(8m%>0?zNu;rT2SuR$ z`{O_SK^^)Jjqu+TElSDE5>Bi|-|Uoyi&J8Ps8jhz)J=K+{h{iWt^xFa$kF3S&*MH{ zF|Idl!J#bZc2EUxpn0G0`L=`q=t-Zi8t->5dCKRThF5&IZTI=ww^fusKs})0&-#4P zknarI7j!6SBIsDqY|!gLH-V;t7J=RYS`NAcv>LSDbEpsf_kq%11APWG5wsjM8#MBH z)CcViS_FC>XgTOQ(5A3w2k0u${h(VxPl6rMd^!J%#LC1p50Zjuv1iB7% zIL_S*K|col1oUUn^PvC2(}xClRc8fgPtbcoCxdp!W0h>ssi5@NcZxxaK`+CzrBk5S zfrjAw*z-VJgKhyG0eTd4Ht6)-@HglJ(5+MsdJyy%&{LqHcw!oYzg5r#v^8kxUc?z_ zThMu+9pCo()`ETnx&zb)dIWSZo;#fbO#_X<-?U#3+8MMEbS&se&@@mlUg6mQ+Vg^1Ud_^`yB)Q6!aqK zAD~U~p9o!F;`0pzEeD+j+6?cNECtO5eFXF{=pN8tL63p9d>8dWyMZ=sq$ndm2ZF8# zod)^==u*%s&__VE!>A8B8uS?GG|-EnbKdj$V(9CcpmCt3pff zi>9YR+k?h_jBx`U0y+;g9ds>d$4?M%ps#_JgNAInbgAN4!4s;sm@1RRT zFZ&#JgZ2U~2E7}!0(3Vh{!2XN9B2$^zjE{&bPnhY(Az*)fF1(f0^0fu)CU~~S^>Ho zl>QT{BG4Gns4r0;v^(ew&}pD6Kr=zNfNlUS2Hgf)0eS&6)4WJ&--$CbrcCA2t&;roypmR=OzJT5hdJgmv(1;jC`2w^v z=sD1_pjYCn`Dvh6gRTR81hf!zKWG_fhks+f5D(g*g`#vhh4})S3_2O~N6;+L1>a)6 zfo}K?^99rgS`J#@i~I&U05rNK<^^b9&~u=Ppnrj8gLbXNd;=W`S_GO1S`JzaS`GSd z(CAk9-_XvWK4>gxBIv`Q*`Q}Y9|7%m7UKrG8MFfQJy4~!qI?Y+1A5Il#5?F4pz}b_ zg02O<`+N8e^bycf(Dy;Tp#KI9ZG&;ccURhjUJL30y$y68=<}d!L63oM2c7*R>Vvwf zP#?54XeicC`a#;@AN970ikcmzUKyc>7O0{eA*S@*?DMhc2pt&~b@Azm&x!|qz68iA z^`b`Biyjkc+!DG%8PcR*#~!WW8Bu>4==M!MA6KM8{7`#Y_-sLW9MzXU)YdwD&TR4d zFf@u1UoUEnHoR_~L>L5?@E!P^1CCT><6~|72#QYt$I@xz!)*KyNhU({sINfg{z~_&6IM3;c25S3B|9Hl7B22k===T>BRbaQ}h-06fPJzsw#&hbs|_SDGRXfjsJDf zha_vp(U^6voDkPlZZt){u0}gCXeU@K(f@nh=n{6&|Km(}f9SH>SZMbn5qK7u`-k_nkTBs0|^L%LqHZ8`#*>O6&<2sx|0BpW{mydLmQPJEV)M<8aJ0H-#s z`Zw5kXW-3%k9Fd(VL3#|=VO773B{|zX3GiSsy94-c;KB0K5#alR)Q^EpaTx!Qr^TELX^xGf8Iz8A7lr%Izo4VG z7^1jX1s!#uV=}Hoj$`v`>Y!K@uH>~U5qi2quD1C}dMH+x1HYg2JQbj4wLNBApr;aY z!PX?Ye?A7h7xY-Rq}lZ=fd349h7;GWXMq?h!{XX~o6on*iBn%PgbtEv4VgU16a>oL zX}9Bn%&(9Mme1w^zW{u$Q->xN7mDq*zz01e_Zp^8r`!6s10Mk#w}*B=rN3iPR0_NY z@TZ(O_2U6s$2rKn44L*$8JQnwOz8dT-M~|D9dbD`qiF}}5iV0=fUSjGHRL9c+^<+c zOgYWNjZuFRaZb>7JN9+Bw(#3+Te5+V0Um5zHvu0AJlOhC1bi~^?oR!*xPYhj%Yn}U zp6A3hF<^vO1OMm}?MLJM;vn#ue)Yv*LgPhTu%h91E>FA-s->0P{~57pAGyX z@Y?zx1AG(kAAo=FtdDVU9cLA+V-IACo(~>#$AG^E+~w4v{mxFJHZB6+yu;^v2G^F2 zG}aHpS9p3-B9( z2b)*Lz^4JPZO=zB-4o-S4!jQbJ0aKNkim>q@@2K{%g_j{UpPm)#%YHpHqX?L_Q11& zukpi|u_Flg0H<@P+Uy{F9`LG5;A??vg|){6)!z>MJn9c~wtuS_hZvNV0&j%+r<^#A z5QX!* zPk>MK!^KSy;jzH$yb^p5k^ua2;2oXy9s9-wz?%WDEsvA_0^oIl*OnIuF9fatALrDs zjj;Oc;?I z06YBM0pMH%U*GuhXGCpdA(K9W$#|QsBkFgWZEY0{k`LWBl|Fwe;@+UI84#Y1{AE zgB}C^A@HtFd=6LV`(%pMZ-BoEJmh*L2FKc(2A{tLz1fcJOej#Dz-wFQsecUsQ2iFp_8s@JJ%Jwq9xTQt1K$h$T4#OA@nY(7{>p~T8OZqUO-bfI zwx8%(&AWSp=V5w=^CR$J_v7?z$Njd?m+7=a6M;tkq-Q?Y0}r+zYKp}481P_z7zq4v z;KB0zG~j!I$2r?aA1M^5{iVRa0Um5G^a$`%m#Du7cu29&H`u9vvF*QOz*_cquX ziSzqK;KP9<9PD{=ja|PfZp-@uuWg*k{(-pODYG~i8u_j2Nnd-J8hV}S>o z$BzJ~XN$r7vj_MH;K9c481TC<(f&o?j{~3Sv`-U(9)q%`I3lS4{+Sb}7%jDZ6bG60 z`-1N^W&qy^JeUtx0AC9{Siau^{OL>7F9yB|c(7bs0sNUD^{I~vp8q`rJl)wxvDe_k z2^#0tkU0gJ+QuOU_z2)XW+qNsT8<=K&;WW{v4~m7x*IJEB*9~$q<9GP#mj%0=$)TKZUV&HMI9rok`}M z;5Lp0-uzJTu}%YCA9%35ybk!4z=OrY4&Z%(XZiKvW~+}!fUmnm`{#f!2j0zD-|>7T z0*?#s1&*{}kCEf~PG{h2E}?%c@ND3Iao{-PN&{XDJlMWs9q6dD?N2^q4ZCw?u2Ol^6C@X7e~GVox2&H{b_cx^d>?A!qS zRp7zqB*_#(#&-!Bz{)ZFqQ9xp9oN>JaO|@#0>1(H<4#=LXvI_0s}$u+;I-LF`Ue6( z0z6nhrvd*Oc(8a{3jE_s)PDr{Dc}Q~_Br-Zdw~0ZcXHw)W$^lT40!mv!R@;U{K`w< zO|il241BFqzjlY^pMk(P01xKBX}~W(9DM(<6nF#R&7Jxk&l4X3zU0o}`|Lfyp9fys z`b#Q(KJ|);?gzq@HLANbO!;2@sm_ToP_wpWhE6_qKyCZ>mLvN1T%I&Fr{>_NDkS`FjKS zMJZ^02KQMxrTWPjJt^lx3)w=5jD0gC8%y2{+13GkSIP7C7&?YZp0~T;ua`U@ zZ-8GV`B}2P(~{4Te5#y_X8k)P-%a9$lJ6t=?8pa4~`KR?Ik})@_f61vh|YZ$3);?ll)j*(~l+t!{oc&MFmkczszDM#iO?k$;Aj-3nmtxB2k{=@RMl#Wu_z20H{=P}_W_xQTFNv~SUeK!+ z^i$kJ&}#%yB6^C8HIiR1d9(h(0RDpH&HjhVz#1m&kCFT-$#;~l zxBhY<7fJaSByaZjW64jGc-Ow-Vx{B@B_A*O3z9eUQ9?ffOqBSOk~j0ihmx0Jqx>#; zGoHg_;x+rw6_{ z#&fuAsH4PtO5U8`V;QIa>~dyVAdr2HYtx0U?40KBs_R89lsCdtdNR-Tu916jXV@@9XJNi2y$I2BF{V&mzgoFjDph@b#w&c{3g|C2!jMl;lnOUX{E# zeywEUF!}o=-(C9SfaD*S{HzTWnNUF^SM?47;W7Q~CX*Tp~0@^KWjN7x}^&gDELoHx8;j;iAttCLE z-JrujJxv>+1wyGG_gHA1q{#~uQZgzjX$fDbN?1R@O{?A)twpH;tzAbg53m1Tw4&^S zU^zbDkiK@#)~-hQ5qbfiixyh5HGHk`8NkLWM18XBBpsywMl0v3~Pbrm%cY2 zM^WKRzxWMrRT&{MJ&ezn;+=??p2okK_A-8C+S~YpX)S*F(-bD1U>i z)K}?(e<}Ux+XZS*EuxbTdR!Phe6+9gzzC?frgg`>z7oZ4O-TKY@r4+2)uU-6yQsV=1NZ$Z#j){x<%QI6JC`%}S2+*(2gtl>-7K-FY1?oNcwSlVq zM6KyVp-r8nX+uIVBdHTF0^4Qd*ARZard5Bb2>b(JpV)Y}uYlj6X;0wq&XPsy55Ue7 z&b`$cpQUMKJ*576A$TVPAI4Sgl0NeUD$dcgq=9&dO-gz|pr0wE2zaxUW%hp{9L{Z5}JhhCq%b#Lm^%oP%uh{M)TcGAAvS>23lIJ(hoU~K zX#)|PRFIaGl&QR+)uC}3{9|tf;~?#dCmzBVh!Jwv;p5tawUx$JIBygZs^TjAMwGek zU5Ur71_m{Zls&B`UDsVv_l2lGqvkes>(8)PeK#cH8Ffl)Tz(RA)foJ}+^ZRWjDmV!k$;bc=-*?TK(q4;6sr84-o*9S;qp|7 zo;q8|s)XZb=t&qDs&01G{k;y3%DIuJT@g#L!m5o>(i9)fP5Y0*jBR%{{P+g^odOgO zG$A#T@MxY;Pq-TJ@P`qq|2zb0UUg{+*g#Q%nu=c;RIdS5(K#TFy0q1skzrAy<^tP5 zI5jEsih%gSr9F4E6nYT?Z}s*kywe~AGa+I*1ACEhScE_ng_Pf8(ubg~W?0lDN^EI4C1TkwY~rFm=aL?eA#aS2uz3_a&depZ<1di2%{?G6*k6cq$p;67 z(N-?;BKFDERxa6un*u5@a|w;p;Pb6SE?GK8Q67ZaC-LE2LSrio+4}^BDx4NMHD0T? z{wX-_Fr+>;B`NE;B9OT#!-y)JQ91pP8csiXoPMbNruUqN3iU|6>%uX{R}O{VvXGtF z7!lYOWi|7bSifAOW(lD>NyA5SYq*%GP!lb`L2qfxrnc+=yXXoVs1RCetLi>C4^!!( zY+Tn@^^3nEVWJWGmYJn6Sc~<(8H-wnG+h~v_rB2s`d*o9^aC=jx@4!V zzVjY*EDq6ckvi-w(Co0t0Hw^QSE9Sm zs&eyC*Bm6sn4l@q=`!cl&0TOhE^9u&?p$iWYD6zlrNuG zX|LOnF8LRleH(jNYW9fT?4aSIk@?hW19kp~!V0^&9aeKH-fWqGwODQMZtyKMyr7OD zZkW4)a;LiT7%qFhs18^S+HiV!({0FhYQyC4@Ca;NzK6Kd^bpB3oEv@>75&OZ=ay2@ z&EfQikOq(_RQ-g7s#W)H_q7A$x=pm*HCpm1h) z<&!*qDJ|FhF5{$StDoeRi@t?U4J+LeSnz)J3@JX5gi+t7YMnabtuIqCcgXu4?}4mAM&qyjdI?=zP^{*lqONwZ_sUAgLKerqPX9n zF7_+x=8br%ct_aDZs_J@gt65ow+^G-E{He2SEFx|)jNp%(RhOv_H~AkT#Z7jn(NNG zszNph!|6(Cd3b~>?{-33_cxZW!~KQ2V1A}Dp_ei2?U|4bAF?wNN|UD|A0+Annxbew zw3gzdZH2gmrs+4}AYc6&#a6aHn zdknBnCN37Hwzp!m!bdjY;cQ-Y515;EI&UC3bpn1(qY6dPuF{p#_AaX6X~OG#+s6-q z8P$Zg0jj8-p&J;xRH}V1er>jD)0NV8CDk6?gePY6BbTd6_;P(Ak|wub43RRbK)qM# zN*zqyYFmwn2_N2^Zq(GqcQ!_?NA&k7*ncKzI8oGKB~(pm{uZ_KntoS~(5PMsp%x@a zJyF{2Cit|z)1z{O{eTRy(8lyXMu)$pWnDyb^k=q~;={2?yNfQjev71!l8(eVTXww( zzVSN^Q2C(t(q*W;8DdX6E8BL8>BK6+p1`mUdxt{8xN}I9qKu;gwebgK7|y5kQ*F@E zub|}wK3WOcFQ8}i@i##30*Y1CVo3dna1IP($7RLDgBXLFQ94qLb|_t7{%L6Nd1j)GkdMO3tzHA!Ct`c z`iq#^YiL)f_y$;|iTh_SUWd%=bs0jMK&s>cSx^U0K=d3Mw(PS5sol>~&Lf zqz8zq-S(p8v`4HkJ_K~8(nS%vYO|GD;&436w|KZ5a)E&bis3^aeu^m)EE#!YNuf5*5-8n(^Y*`CC0rlV(b-o>%CcjyzZ6L@Io$fGBSd(?*RBaI!^#rKXE0l?`g0T zYL)txL%`h2OlbY}2r+j7Gf_tJ{a{w~oK96nJ%j7}8k|Ix=+19qS#aO44?q_p8^V?N zXhUecNTW(Jija9we`yDDAMk#rj6}BUZThLoIFu%uh&q}a^OAZY4o&Td{tz3R@uV~p z0?Yh`j0@jGW?73|6t^|H;QIDZ@|3Hc2Oe}6>bHlgT<1jy?4r7pNVh@jsyp`zT36fk zp=MsypY0$d$|3cQElGpuUV8<3yWM>!alKm~h64(gz!p6eAE|TpP@wBtQ1f9_+>UPi z+1~TbfF*jDzH-yr#5$Ye&aO?%(wEIw~7{5(3}* zi?_S>0f_vipT1o<%Z-qT!iQa;vc@*syFo-(^`#3Cr@&$f=cwR-;3-3~?fMMX(FoX) z8%EAEuDu==%Zvq%>!r9(`V0HMp&Nh1TXOCfRU;K!xR+Hugbq60$y$WA0qykp3L_V) zWW4YMN&Ts2N8>9L--JWLr$#OVqr@+#4l5cTM2E&N$8n@v)r>q~QStf60d7rjv293+ zJ4Dk8-ohXCfb#Ryky$i&|6(Xi)2_#y2}9Ke_%NiV5&nvZU7Vy&{Q_S)L6O=O68-(9 zL<4m-?c_v^Kd`A5zJ#>wQWs-O;l5ncDmP;nWPzj)%~F4(d20Tlb|u$p(L5VU)b8X) zEu*9lIiZ=B+8C*Wmf8VSr41FkTWDI3PO9<_l+wY!c01`5P+LtqfMZko3ffr{QdblH zFRt22)9QW)4q6R-xT<=$UH@uLd%Zgn5U@@bey@#p)3nTcaRLG?!NRG&%0dec!M;}k zOgBNfQ;JT%6NbO6HhdUV3!`2|)9%N;Pi;)S)54abNMD7BavxOny*PEC0_|D++DR81 z$cFHqnZOULdO8xB_72M5BkVC7`#{yd`3OZPP=3zDRLY&Q@=;a)xEBO8B&N&o;mYcE z>VZS*Ggbc)6G>|ii5`AZQq5PYPV2lj8sKD0;04=|f2;b}w?W`0fOK~!+93gMOse@# z)ek)numBQI*OZbb^`Ks-YVNB>!lXALcE}VJ-qmMg$lQH3{iBVTR%k+_KNU*vIttea ze4wWH_&3g-2v@Ge?hGH{*63uMguC~u+FlwQeZz-nE>6=wA1{TvK(ePT%?sTdYV1uc zJ$ezOM`(Jl&!o^aNX{Z@F)WW##9~{y7Y7DfHp+8MOeLL){upj<-4iwa<49zCirGg| zyxkHKqp}ad@BWvjpWO<9y#PP31gMU5)WKLtE!W)5Uxw5vNc?C?2{lJ?3+sMbbGxx2 z(A-Eu4e=2}!)iFogug?X_jS$vP)A60f&|@h21?DCcL7o<+T{hU`o}&sjySC zv*b@-A`>9Im9TUGO^xF)wOL-oebC3JAyMfC%k0q@YT~JT? zf;z(&WHet4GfT+dTtd#}3vwV|P#Ew91r1+NZ^n^5+A5Vd7z14mLq1h_htdDSujt72 zF5QbzX?qp60QhLHQ(O;bXr@aazZ&PoC?0D<>OR87eD3FJLLFAa2o+V*UHYkC@FxgR zu*#}JSF#@6^SJxCn$QrbVFZM8Q@6SFpIc%(`vOY#`&T@K24!u!H*t4yUBNdEVI(JN zKj6~uc?D8uQF6hm{T^8=I{CCqAJbM&1l?KYt3XGr{MN{O`5{6ZW?Ey=wMjekjI zG-{3@z(=@(U8R$ZyJ?8tb&eDo0D+N~5c^9Abq Ypn`RGazuYB}6tU;ZNZ1+&wHr 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�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 Q)n9d5(fd<3ocbC4e +#include +#include +#include +#include +#include +using namespace std; + + +size_t random_integer(int lower_bound, int upper_bound) +{ + unsigned seed = chrono::system_clock::now().time_since_epoch().count(); + + minstd_rand0 generator (seed); + + return lower_bound + generator() % (upper_bound - lower_bound + 1); +} + +int main(int argc, char **argv) +{ + // start with generating a sorted vector/list + size_t n = 10000; + vector x_vec(n); + list x_list(n); + for(size_t k = 0; k < n; ++k) + { + x_vec[k] = k + 1; + x_list.push_back(k + 1); + } + + + // insert new random entries such that the container stays sorted + tic(); + for(size_t i = 0; i < n; ++i) + { + size_t new_entry = random_integer(1,n); + auto it = lower_bound(x_vec.begin(), x_vec.end(), new_entry); + x_vec.insert(it, new_entry); + } + double time_1 = toc(); + + tic(); + for(size_t i = 0; i < n; ++i) + { + size_t new_entry = random_integer(1,n); + auto it = lower_bound(x_list.begin(), x_list.end(), new_entry); + x_list.insert(it, new_entry); + } + double time_2 = toc(); + + + // check results + cout << "New vector is sorted: " << std::boolalpha << is_sorted(x_vec.cbegin(), x_vec.cend()) << "\tsize: " << x_vec.size() << "\tduration: " << time_1 << endl; + cout << "New list is sorted: " << std::boolalpha << is_sorted(x_list.cbegin(), x_list.cend()) << "\tsize: " << x_list.size() << "\tduration: " << time_2 << endl; + + // Vector stores 3 pointers + // List stores two pointers for every element: one to the previous, one to the next element + + + + return 0; +} diff --git a/ex1/ex1F_goldbachs_conjecture/goldbach b/ex1/ex1F_goldbachs_conjecture/goldbach new file mode 100755 index 0000000000000000000000000000000000000000..da03bf657cd951e7f2d54a2dffdbbe9ec2e24cfb GIT binary patch literal 205120 zcmeFad3;nw7C(A#_w95iouvawNWvCYLkJF#4vHcrDx}uT1BQh9h-88?p>u6Fx4V{eP#tBAqXNoRSj_pV0-_&@OKr^3g8;>!r}%oYzxSpk7({(5KEh zf0BV_*~2s~&Tv&I+?GdLil&o)arbRAj;wlpeUI@M|M8_B&wuy!(VY*Ihk7#)d3aHt zZgRnS&ptsOWsl8rZ}*eBIj=5E-4Z`Sn9uO_CDL@)ZbYS7FL) z^^Yd_hc=N;f6Kxr`ueyDek7lfe>2k0)Lyww@aIDR_R)m`e+dO78!e533Pq$p$yHJ^ zZ{gxaCCkc7mzI~57$u`8jxCuzXX%`I^Ou#+Svqm-hy{xm&6!v_bHN-%J2PdT6}ro3SnBjU|Hep@EtQwDDORI(d-4IXH6*Y(PLIw>C%$&rKR)B zmyMoPSU4VOy=Im!n?I{$@v`!zb4nMEo>($5zoc+NU(^R>Qe4rf@e>wLC@Dn3qEaQX z$Jw^RGfQWelrDf0D86LY%F>dVsQ#joS*7K(%B1j~J?1Z7R)R9-lpuaBEnT{*Wd5T0 zN3Dr4!=(p4pk=GZ1uJPVeM{@-df zYa;5@r$m`_(dDRxD7$oym|e>2J!|pua-9x?*;Sad=<@l%#?M){d?DJAtv&0~l38V! zmdq`kzra{HXW_!dD@b7FOUvi1oKGRB>MZRT3rpuO(&V}GS<}^Xm}}Xbasyn;%4g5& z+Lb}PFVT6kkd0UmVzX5GIU`1t^vcUO&KWa$_=u98dA-ATy&|_g^ZKad;$krO&g<3F z7*Sk2Z20Js9(ld;`ZuEW?C+p8qV#CQNH2FG-n;N;$+rg)-ir~2DL#B+@v)3Jq*(Yf z4L?3Ee8^$qZyfrR-Jgp(ukst<=^<0hT9>a|Bvp3k_)#)a-R9?|&WM=!-tX&KLIe7?}# z#vzTDcex2u5|{B7a9;L&$)2ZdZLZSm^*qW>pO>T34SSxX(HWZGSD_MYejBe_qtZEs z+G8hEjyTfQ_^SAhI?`d7@D*~Tw+N>~e@A+TBfZ{{-qMjCs89&QU791^j)R2WqQ z;1WkV94CCObfm|JQw^iSk*=rsLfz;{Pjv8CJJORJ>02D>_8gJqt&a3$2mf|Qx^sNn z=}70i&c1d#(o^k3z&(!ibVvFjN4j20IH#u6%8Ju=0c8+K)~aO)TuOr^gGyO@p%$mm5-l zSYR06%*{(`yAF*22j4Wf9Wn^6l3U{9lr|sn2Hw zU49N$o(%5&d}wfQy*p?g48Hbrc?twPtOfWQj;eOF^Rs_c4E`8p8Oys)3a%YI1)N5( z^5gROVAbFaKtjiUYG??}hPNH`JPST^8uEtAXZ~ZCgUFjn$TtDKwK!OL)%MxJDyvhr z2rCTr*c04TSQo6Cv^`k)X0Wn0^aJ{!B;o#5^tWJT;h|t{;ZE=yfV&BgPYYHR?gnMg z@sY^7Tk%Ww{mfF8j#MRB3FQt&u*wLUM}qwew0>~56WuN79l@$;J8fk?MKB0f9)aZ0>|oavsX@6XbO1>m1|BofTb)if#;6F0VLq zWh-=L6CIWPx5!7yn+oq{rK_t^-L0%H^r;ALT4Dw_jlDa#Y0_5UkPTBYhj7=1enKc> zhV9I7>`y8eY+AVUSd}0!Fb%Ej@dxGxXUu%A z&b%qbt@IO-?@4MPxOSfztOTINs|t6*y1SFEod@qg(sm|oS4rm}soJ*qa#*JtG}>Ev zO!=teLuuw<<$k;3mQ-A{s|}5yJx_0=tRGPj3|0mhYEFa}Y}9CIuX?1`PYXArq*N|H ziPV$R_RDxdH-;ByffS-%Ft22y>?`47)zuL%0AIisN;>TWvQthY`T^EFlAXP!AMzi9 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

Vjlea(6h@lXezT_qY=|OXsQgh+5M1 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 YgAgLuanJvs6#{*y>8L&w`I-3t0LKhIbpQYW literal 0 HcmV?d00001 diff --git a/ex1/ex1F_goldbachs_conjecture/goldbach.cpp b/ex1/ex1F_goldbachs_conjecture/goldbach.cpp new file mode 100644 index 0000000..858d40b --- /dev/null +++ b/ex1/ex1F_goldbachs_conjecture/goldbach.cpp @@ -0,0 +1,42 @@ +#include "goldbach.h" + +size_t single_goldbach(size_t k) +{ + const std::vector relevant_primes = get_primes(k); + size_t m = relevant_primes.size(); + + size_t counter = 0; + + for(size_t i = 0; i < m; ++i) + { + for(size_t j = i; j < m; ++j) + { + if(relevant_primes[i] + relevant_primes[j] == k) + ++counter; + } + } + + return counter; +} + + +std::vector count_goldbach(size_t n) +{ + const std::vector relevant_primes = get_primes(n); + size_t m = relevant_primes.size(); + + std::vector counter_vector(n + 1, 0); + + + for(size_t i = 0; i < m; ++i) + { + for(size_t j = i; j < m; ++j) + { + size_t sum = relevant_primes[i] + relevant_primes[j]; + if(sum <= n) + ++counter_vector[relevant_primes[i] + relevant_primes[j]]; + } + } + + return counter_vector; +} diff --git a/ex1/ex1F_goldbachs_conjecture/goldbach.h b/ex1/ex1F_goldbachs_conjecture/goldbach.h new file mode 100644 index 0000000..5794ad4 --- /dev/null +++ b/ex1/ex1F_goldbachs_conjecture/goldbach.h @@ -0,0 +1,21 @@ +#pragma once +#include "mayer_primes.h" +#include +#include +#include +#include + + +/** + This function returns the number of possible decompositions of an integer into a sum of two prime numbers. + @param[in] k first integer + @param[out] count number of decompositions +*/ +size_t single_goldbach(size_t k); + +/** + This function returns the number of possible decompositions into a sum of two prime numbers of all even integers in the interval [4,n]. + @param[in] n upper integer bound + @param[out] count_vector vector containing the number of decompositions for a natural number the corresponding index +*/ +std::vector count_goldbach(size_t n); \ No newline at end of file diff --git a/ex1/ex1F_goldbachs_conjecture/main b/ex1/ex1F_goldbachs_conjecture/main new file mode 100755 index 0000000000000000000000000000000000000000..da03bf657cd951e7f2d54a2dffdbbe9ec2e24cfb GIT binary patch literal 205120 zcmeFad3;nw7C(A#_w95iouvawNWvCYLkJF#4vHcrDx}uT1BQh9h-88?p>u6Fx4V{eP#tBAqXNoRSj_pV0-_&@OKr^3g8;>!r}%oYzxSpk7({(5KEh zf0BV_*~2s~&Tv&I+?GdLil&o)arbRAj;wlpeUI@M|M8_B&wuy!(VY*Ihk7#)d3aHt zZgRnS&ptsOWsl8rZ}*eBIj=5E-4Z`Sn9uO_CDL@)ZbYS7FL) z^^Yd_hc=N;f6Kxr`ueyDek7lfe>2k0)Lyww@aIDR_R)m`e+dO78!e533Pq$p$yHJ^ zZ{gxaCCkc7mzI~57$u`8jxCuzXX%`I^Ou#+Svqm-hy{xm&6!v_bHN-%J2PdT6}ro3SnBjU|Hep@EtQwDDORI(d-4IXH6*Y(PLIw>C%$&rKR)B zmyMoPSU4VOy=Im!n?I{$@v`!zb4nMEo>($5zoc+NU(^R>Qe4rf@e>wLC@Dn3qEaQX z$Jw^RGfQWelrDf0D86LY%F>dVsQ#joS*7K(%B1j~J?1Z7R)R9-lpuaBEnT{*Wd5T0 zN3Dr4!=(p4pk=GZ1uJPVeM{@-df zYa;5@r$m`_(dDRxD7$oym|e>2J!|pua-9x?*;Sad=<@l%#?M){d?DJAtv&0~l38V! zmdq`kzra{HXW_!dD@b7FOUvi1oKGRB>MZRT3rpuO(&V}GS<}^Xm}}Xbasyn;%4g5& z+Lb}PFVT6kkd0UmVzX5GIU`1t^vcUO&KWa$_=u98dA-ATy&|_g^ZKad;$krO&g<3F z7*Sk2Z20Js9(ld;`ZuEW?C+p8qV#CQNH2FG-n;N;$+rg)-ir~2DL#B+@v)3Jq*(Yf z4L?3Ee8^$qZyfrR-Jgp(ukst<=^<0hT9>a|Bvp3k_)#)a-R9?|&WM=!-tX&KLIe7?}# z#vzTDcex2u5|{B7a9;L&$)2ZdZLZSm^*qW>pO>T34SSxX(HWZGSD_MYejBe_qtZEs z+G8hEjyTfQ_^SAhI?`d7@D*~Tw+N>~e@A+TBfZ{{-qMjCs89&QU791^j)R2WqQ z;1WkV94CCObfm|JQw^iSk*=rsLfz;{Pjv8CJJORJ>02D>_8gJqt&a3$2mf|Qx^sNn z=}70i&c1d#(o^k3z&(!ibVvFjN4j20IH#u6%8Ju=0c8+K)~aO)TuOr^gGyO@p%$mm5-l zSYR06%*{(`yAF*22j4Wf9Wn^6l3U{9lr|sn2Hw zU49N$o(%5&d}wfQy*p?g48Hbrc?twPtOfWQj;eOF^Rs_c4E`8p8Oys)3a%YI1)N5( z^5gROVAbFaKtjiUYG??}hPNH`JPST^8uEtAXZ~ZCgUFjn$TtDKwK!OL)%MxJDyvhr z2rCTr*c04TSQo6Cv^`k)X0Wn0^aJ{!B;o#5^tWJT;h|t{;ZE=yfV&BgPYYHR?gnMg z@sY^7Tk%Ww{mfF8j#MRB3FQt&u*wLUM}qwew0>~56WuN79l@$;J8fk?MKB0f9)aZ0>|oavsX@6XbO1>m1|BofTb)if#;6F0VLq zWh-=L6CIWPx5!7yn+oq{rK_t^-L0%H^r;ALT4Dw_jlDa#Y0_5UkPTBYhj7=1enKc> zhV9I7>`y8eY+AVUSd}0!Fb%Ej@dxGxXUu%A z&b%qbt@IO-?@4MPxOSfztOTINs|t6*y1SFEod@qg(sm|oS4rm}soJ*qa#*JtG}>Ev zO!=teLuuw<<$k;3mQ-A{s|}5yJx_0=tRGPj3|0mhYEFa}Y}9CIuX?1`PYXArq*N|H ziPV$R_RDxdH-;ByffS-%Ft22y>?`47)zuL%0AIisN;>TWvQthY`T^EFlAXP!AMzi9 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

Vjlea(6h@lXezT_qY=|OXsQgh+5M1 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

Q^R%-IZbb~Gx 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 m7%gz@-8a|}j8N~RPMlTYUSZ+l8z-=XAt;z*YU & + kcachegrind `ls -1tr callgrind.out.* |tail -1` + +# Check for wrong memory accesses, memory leaks, ... +# use smaller data sets +mem: ${PROGRAM} + valgrind -v --leak-check=yes --tool=memcheck --undef-value-errors=yes --track-origins=yes --log-file=$^.addr.out --show-reachable=yes ./$^ ${PARAMS} + +# Simple run time profiling of your code +# CXXFLAGS += -g -pg +# LINKFLAGS += -pg +prof: ${PROGRAM} + perf record ./$^ ${PARAMS} + perf report +# gprof -b ./$^ > gp.out +# kprof -f gp.out -p gprof & + +codecheck: tidy_check diff --git a/ex3/GCC_AMD32_default.mk b/ex3/GCC_AMD32_default.mk new file mode 100644 index 0000000..a911b6b --- /dev/null +++ b/ex3/GCC_AMD32_default.mk @@ -0,0 +1,130 @@ +# Basic Defintions for using GNU-compiler suite sequentially +# requires setting of COMPILER=GCC_ + +CC = gcc +CXX = g++ +F77 = gfortran +LINKER = ${CXX} + +# on mephisto: +#CXXFLAGS += -I/share/apps/atlas/include +#LINKFLAGS += -L/share/apps/atlas/lib +#LINKFLAGS += -lcblas -latlas + +#LINKFLAGS += -lblas +# Der Header muss mit extern "C" versehen werden, damit g++ alles findet. + + +#WARNINGS = -pedantic -pedantic-errors -Wall -Wextra -Werror -Wconversion -Weffc++ -Woverloaded-virtual -Wfloat-equal -Wshadow +WARNINGS = -pedantic -Wall -Wextra -Wconversion -Weffc++ -Woverloaded-virtual -Wfloat-equal -Wshadow \ + -Wredundant-decls -Winline -fmax-errors=1 +# -Wunreachable-code +# -Wunreachable-code +CXXFLAGS += -ffast-math -O3 -march=native -std=c++17 ${WARNINGS} +#CXXFLAGS += -Ofast -funroll-all-loops -std=c++17 ${WARNINGS} +#-msse3 +# -ftree-vectorizer-verbose=2 -DNDEBUG +# -ftree-vectorizer-verbose=5 +# -ftree-vectorize -fdump-tree-vect-blocks=foo.dump -fdump-tree-pre=stderr + +# CFLAGS = -ffast-math -O3 -DNDEBUG -msse3 -fopenmp -fdump-tree-vect-details +# CFLAGS = -ffast-math -O3 -funroll-loops -DNDEBUG -msse3 -fopenmp -ftree-vectorizer-verbose=2 +# #CFLAGS = -ffast-math -O3 -DNDEBUG -msse3 -fopenmp +# FFLAGS = -ffast-math -O3 -DNDEBUG -msse3 -fopenmp +# LFLAGS = -ffast-math -O3 -DNDEBUG -msse3 -fopenmp +LINKFLAGS += -O3 + +# BLAS, LAPACK +OPENBLAS_DIR = /opt/openblas_GCCseq +#OPENBLAS_DIR = /opt/openblas_GCC +OPENBLAS_LIBDIR = ${OPENBLAS_DIR}/lib +OPENBLAS_INCDIR = ${OPENBLAS_DIR}/include +CXXFLAGS += -I${OPENBLAS_INCDIR} +LINKFLAGS += -L${OPENBLAS_LIBDIR} -lopenblas + +# interprocedural optimization +CXXFLAGS += -flto +LINKFLAGS += -flto + +# profiling tools +#CXXFLAGS += -pg +#LINKFLAGS += -pg + +default: ${PROGRAM} + +${PROGRAM}: ${OBJECTS} + $(LINKER) $^ ${LINKFLAGS} -o $@ + +clean: + @rm -f ${PROGRAM} ${OBJECTS} + +clean_all:: clean + -@rm -f *_ *~ *.bak *.log *.out *.tar *.orig + -@rm -r html + +run: clean ${PROGRAM} +# time ./${PROGRAM} +# ./${PROGRAM} + ( export LD_LIBRARY_PATH=${OPENBLAS_LIBDIR}:${LD_LIBRARY_PATH} ; ./${PROGRAM} ) +# or 'export LD_LIBRARY_PATH=/opt/openblas_gcc/lib:${LD_LIBRARY_PATH}' in your ~/.bashrc + +# tar the current directory +MY_DIR = `basename ${PWD}` +tar: + @echo "Tar the directory: " ${MY_DIR} + @cd .. ;\ + tar cf ${MY_DIR}.tar ${MY_DIR} *default.mk ;\ + cd ${MY_DIR} +# tar cf `basename ${PWD}`.tar * + +doc: + doxygen Doxyfile + +######################################################################### + +.cpp.o: + $(CXX) -c $(CXXFLAGS) -o $@ $< + +.c.o: + $(CC) -c $(CFLAGS) -o $@ $< + +.f.o: + $(F77) -c $(FFLAGS) -o $@ $< + +################################################################################################## +# some tools +# Cache behaviour (CXXFLAGS += -g tracks down to source lines; no -pg in linkflags) +cache: ${PROGRAM} + valgrind --tool=callgrind --simulate-cache=yes ./$^ +# kcachegrind callgrind.out. & + kcachegrind `ls -1tr callgrind.out.* |tail -1` + +# Check for wrong memory accesses, memory leaks, ... +# use smaller data sets +# no "-pg" in compile/link options +mem: ${PROGRAM} + valgrind -v --leak-check=yes --tool=memcheck --undef-value-errors=yes --track-origins=yes --log-file=$^.addr.out --show-reachable=yes ./$^ + +# Simple run time profiling of your code +# CXXFLAGS += -g -pg +# LINKFLAGS += -pg +prof: ${PROGRAM} + ./$^ + gprof -b ./$^ > gp.out +# kprof -f gp.out -p gprof & + +#Trace your heap: +#> heaptrack ./main.GCC_ +#> heaptrack_gui heaptrack.main.GCC_..gz +heap: ${PROGRAM} + heaptrack ./$^ 11 + heaptrack_gui `ls -1tr heaptrack.$^.* |tail -1` & + + + +######################################################################## +# get the detailed status of all optimization flags +info: + echo "detailed status of all optimization flags" + $(CXX) --version + $(CXX) -Q $(CXXFLAGS) --help=optimizers diff --git a/ex3/GCC_default.mk b/ex3/GCC_default.mk new file mode 100644 index 0000000..803c060 --- /dev/null +++ b/ex3/GCC_default.mk @@ -0,0 +1,183 @@ +# Basic Defintions for using GNU-compiler suite sequentially +# requires setting of COMPILER=GCC_ + +CC = gcc +CXX = g++ +F77 = gfortran +LINKER = ${CXX} + +WARNINGS = -Wall -pedantic -Wextra -Weffc++ -Woverloaded-virtual -Wfloat-equal -Wshadow \ + -Wredundant-decls -Winline -fmax-errors=1 +# -Wunreachable-code +CXXFLAGS += -ffast-math -O3 -march=native -std=c++17 ${WARNINGS} +#CXXFLAGS += -Ofast -funroll-all-loops -std=c++17 ${WARNINGS} +#-msse3 +# -ftree-vectorizer-verbose=2 -DNDEBUG +# -ftree-vectorizer-verbose=5 +# -ftree-vectorize -fdump-tree-vect-blocks=foo.dump -fdump-tree-pre=stderr + +# CFLAGS = -ffast-math -O3 -DNDEBUG -msse3 -fopenmp -fdump-tree-vect-details +# CFLAGS = -ffast-math -O3 -funroll-loops -DNDEBUG -msse3 -fopenmp -ftree-vectorizer-verbose=2 +# #CFLAGS = -ffast-math -O3 -DNDEBUG -msse3 -fopenmp +# FFLAGS = -ffast-math -O3 -DNDEBUG -msse3 -fopenmp +# LFLAGS = -ffast-math -O3 -DNDEBUG -msse3 -fopenmp +LINKFLAGS += -O3 + +#architecture +#CPU = -march=znver2 +CXXFLAGS += ${CPU} +LINKFLAGS += ${CPU} + +# different libraries in Ubuntu or manajaró +ifndef UBUNTU +UBUNTU=1 +endif + +# BLAS, LAPACK +ifeq ($(UBUNTU),1) +LINKFLAGS += -llapack -lblas +# -lopenblas +else +# on archlinux +LINKFLAGS += -llapack -lopenblas -lcblas +endif + +# interprocedural optimization +CXXFLAGS += -flto +LINKFLAGS += -flto + +# for debugging purpose (save code) +# -fsanitize=leak # only one out the three can be used +# -fsanitize=address +# -fsanitize=thread +SANITARY = -fsanitize=address -fsanitize=undefined -fsanitize=null -fsanitize=return \ + -fsanitize=bounds -fsanitize=alignment -fsanitize=float-divide-by-zero -fsanitize=float-cast-overflow \ + -fsanitize=bool -fsanitize=enum -fsanitize=vptr +#CXXFLAGS += ${SANITARY} +#LINKFLAGS += ${SANITARY} + +# profiling tools +#CXXFLAGS += -pg +#LINKFLAGS += -pg + + +default: ${PROGRAM} + +${PROGRAM}: ${OBJECTS} + $(LINKER) $^ ${LINKFLAGS} -o $@ + +clean: + @rm -f ${PROGRAM} ${OBJECTS} + +clean_all:: clean + -@rm -f *_ *~ *.bak *.log *.out *.tar *.orig *.optrpt + -@rm -rf html + +run: clean ${PROGRAM} +#run: ${PROGRAM} +# time ./${PROGRAM} ${PARAMS} + ./${PROGRAM} ${PARAMS} + +# tar the current directory +MY_DIR = `basename ${PWD}` +tar: clean_all + @echo "Tar the directory: " ${MY_DIR} + @cd .. ;\ + tar cf ${MY_DIR}.tar ${MY_DIR} *default.mk ;\ + cd ${MY_DIR} +# tar cf `basename ${PWD}`.tar * +#find . -size +10M > large_files +#--exclude-from ${MY_DIR}/large_files + +zip: clean + @echo "Zip the directory: " ${MY_DIR} + @cd .. ;\ + zip -r ${MY_DIR}.zip ${MY_DIR} *default.mk ;\ + cd ${MY_DIR} + +doc: + doxygen Doxyfile + +######################################################################### +.SUFFIXES: .f90 + +.cpp.o: + $(CXX) -c $(CXXFLAGS) -o $@ $< +# $(CXX) -c $(CXXFLAGS) -o $@ $< 2>&1 | tee -a $<.log +# $(CXX) -c $(CXXFLAGS) -o $@ $< 2>&1 | tee -a $(<:.cpp=.log) + +.c.o: + $(CC) -c $(CFLAGS) -o $@ $< + +.f.o: + $(F77) -c $(FFLAGS) -o $@ $< + +.f90.o: + $(F77) -c $(FFLAGS) -o $@ $< + +################################################################################################## +# some tools +# Cache behaviour (CXXFLAGS += -g tracks down to source lines; no -pg in linkflags) +cache: ${PROGRAM} + valgrind --tool=callgrind --simulate-cache=yes ./$^ ${PARAMS} +# kcachegrind callgrind.out. & + kcachegrind `ls -1tr callgrind.out.* |tail -1` + +# Check for wrong memory accesses, memory leaks, ... +# use smaller data sets +# no "-pg" in compile/link options +mem: ${PROGRAM} + valgrind -v --leak-check=yes --tool=memcheck --undef-value-errors=yes --track-origins=yes --log-file=$^.addr.out --show-reachable=yes ./$^ ${PARAMS} +# Graphical interface +# valkyrie + +# Simple run time profiling of your code +# CXXFLAGS += -g -pg +# LINKFLAGS += -pg +prof: ${PROGRAM} + perf record ./$^ ${PARAMS} + perf report +# gprof -b ./$^ > gp.out +# kprof -f gp.out -p gprof & + +# perf in Ubuntu 20.04: https://www.howtoforge.com/how-to-install-perf-performance-analysis-tool-on-ubuntu-20-04/ +# * install +# * sudo vi /etc/sysctl.conf +# add kernel.perf_event_paranoid = 0 + +#Trace your heap: +#> heaptrack ./main.GCC_ +#> heaptrack_gui heaptrack.main.GCC_..gz +heap: ${PROGRAM} + heaptrack ./$^ ${PARAMS} + heaptrack_gui `ls -1tr heaptrack.$^.* |tail -1` & + +codecheck: $(SOURCES) + cppcheck --enable=all --inconclusive --std=c++17 --suppress=missingIncludeSystem $^ + + +######################################################################## +# get the detailed status of all optimization flags +info: + echo "detailed status of all optimization flags" + $(CXX) --version + $(CXX) -Q $(CXXFLAGS) --help=optimizers + lscpu + inxi -C + lstopo + +# Excellent hardware info +# hardinfo +# Life monitoring of CPU frequency etc. +# sudo i7z + +# Memory consumption +# vmstat -at -SM 3 +# xfce4-taskmanager + + +# https://www.tecmint.com/check-linux-cpu-information/ +#https://www.tecmint.com/monitor-cpu-and-gpu-temperature-in-ubuntu/ + +# Debugging: +# https://wiki.archlinux.org/index.php/Debugging diff --git a/ex3/ICC_default.mk b/ex3/ICC_default.mk new file mode 100644 index 0000000..d4bd4db --- /dev/null +++ b/ex3/ICC_default.mk @@ -0,0 +1,137 @@ +# Basic Defintions for using INTEL compiler suite sequentially +# requires setting of COMPILER=ICC_ + +#BINDIR = /opt/intel/bin/ + +# special on my sony [GH] +#BINDIR = /opt/save.intel/bin/ +# very special on my sony [GH] +# FIND_LIBS = -L /opt/save.intel/composer_xe_2013.1.117/mkl/lib/intel64/libmkl_intel_lp64.so + +# Error with g++-4.8 using icpc14.0,x: +# find directory wherein bits/c++config.h is located +# 'locate bits/c++config.h' +#FOUND_CONFIG = -I/usr/include/x86_64-linux-gnu/c++/4.8 + + +CC = ${BINDIR}icc +CXX = ${BINDIR}icpc +F77 = ${BINDIR}ifort +LINKER = ${CXX} + + +WARNINGS = -Wall -Weffc++ -Woverloaded-virtual -Wfloat-equal -Wshadow -wd2015,2012 -wn3 +# -Winline -Wredundant-decls -Wunreachable-code +CXXFLAGS += -O3 -fargument-noalias -std=c++17 -DNDEBUG ${WARNINGS} -mkl ${FOUND_CONFIG} +# profiling tools +#CXXFLAGS += -pg +#LINKFLAGS += -pg +# -vec-report=3 +# -qopt-report=5 -qopt-report-phase=vec +# -guide -parallel +# -guide-opts=string -guide-par[=n] -guide-vec[=n] +# -auto-p32 -simd +CXXFLAGS += -align + +# use MKL by INTEL +# https://software.intel.com/content/www/us/en/develop/documentation/mkl-linux-developer-guide/top/linking-your-application-with-the-intel-math-kernel-library/linking-quick-start/using-the-mkl-compiler-option.html +# https://software.intel.com/content/www/us/en/develop/articles/intel-mkl-link-line-advisor.html +# LINKFLAGS += -L${BINDIR}../composer_xe_2013.1.117/mkl/lib/intel64 -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread +#LINKFLAGS += -O3 -L/opt/intel/mkl/lib -mkl +LINKFLAGS += -O3 -mkl=sequential + +# interprocedural optimization +CXXFLAGS += -ipo +LINKFLAGS += -ipo + +# annotated assembler file +ANNOTED = -fsource-asm -S + +default: ${PROGRAM} + +${PROGRAM}: ${OBJECTS} + $(LINKER) $^ ${LINKFLAGS} -o $@ + +clean: + rm -f ${PROGRAM} ${OBJECTS} + +clean_all:: clean + @rm -f *_ *~ *.bak *.log *.out *.tar + +run: clean ${PROGRAM} + ./${PROGRAM} + +# tar the current directory +MY_DIR = `basename ${PWD}` +tar: clean_all + @echo "Tar the directory: " ${MY_DIR} + @cd .. ;\ + tar cf ${MY_DIR}.tar ${MY_DIR} *default.mk ;\ + cd ${MY_DIR} +# tar cf `basename ${PWD}`.tar * + +doc: + doxygen Doxyfile + +######################################################################### + +.cpp.o: + $(CXX) -c $(CXXFLAGS) -o $@ $< + +.c.o: + $(CC) -c $(CFLAGS) -o $@ $< + +.f.o: + $(F77) -c $(FFLAGS) -o $@ $< + +################################################################################################## +# # some tools +# # Cache behaviour (CXXFLAGS += -g tracks down to source lines) +# cache: ${PROGRAM} +# valgrind --tool=callgrind --simulate-cache=yes ./$^ +# # kcachegrind callgrind.out. & +# +# # Check for wrong memory accesses, memory leaks, ... +# # use smaller data sets +# mem: ${PROGRAM} +# valgrind -v --leak-check=yes --tool=memcheck --undef-value-errors=yes --track-origins=yes --log-file=$^.addr.out --show-reachable=yes ./$^ +# +# # Simple run time profiling of your code +# # CXXFLAGS += -g -pg +# # LINKFLAGS += -pg +# prof: ${PROGRAM} +# ./$^ +# gprof -b ./$^ > gp.out +# # kprof -f gp.out -p gprof & +# + + +mem: inspector +prof: amplifier +cache: amplifier + +gap_par_report: + ${CXX} -c -guide -parallel $(SOURCES) 2> gap.txt + +# GUI for performance report +amplifier: ${PROGRAM} + echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope +# alternatively to the solution above: + #edit file /etc/sysctl.d/10-ptrace.conf and set variable kernel.yama.ptrace_scope variable to 0 . + amplxe-gui & + +# GUI for Memory and Thread analyzer (race condition) +inspector: ${PROGRAM} + echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope + inspxe-gui & + +advisor: + echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope + advixe-gui & + +icc-info: + icpc -# main.cpp + + + + diff --git a/ex3/ONEAPI_default.mk b/ex3/ONEAPI_default.mk new file mode 100644 index 0000000..fe7b3fe --- /dev/null +++ b/ex3/ONEAPI_default.mk @@ -0,0 +1,176 @@ +# Basic Defintions for using INTEL compiler suite sequentially +# requires setting of COMPILER=ONEAPI_ + +# https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/onemkl/link-line-advisor.html +# requires +# source /opt/intel/oneapi/setvars.sh +# on AMD: export MKL_DEBUG_CPU_TYPE=5 + +#BINDIR = /opt/intel/oneapi/compiler/latest/linux/bin/ +#MKL_ROOT = /opt/intel/oneapi/mkl/latest/ +#export KMP_AFFINITY=verbose,compact + +CC = ${BINDIR}icc +CXX = ${BINDIR}dpcpp +F77 = ${BINDIR}ifort +LINKER = ${CXX} + +## Compiler flags +WARNINGS = -Wall -Weffc++ -Woverloaded-virtual -Wfloat-equal -Wshadow -pedantic +WARNINGS += -Wpessimizing-move -Wredundant-move +#-wd2015,2012,2014 -wn3 +# -Winline -Wredundant-decls -Wunreachable-code +# -qopt-subscript-in-range +# -vec-threshold0 + +CXXFLAGS += -O3 -std=c++17 ${WARNINGS} +#CXXFLAGS += -DMKL_ILP64 -I"${MKLROOT}/include" +#CXXFLAGS += -DMKL_ILP32 -I"${MKLROOT}/include" +LINKFLAGS += -O3 + +# interprocedural optimization +CXXFLAGS += -ipo +LINKFLAGS += -ipo +LINKFLAGS += -flto + +# annotated Assembler file +ANNOTED = -fsource-asm -S + +#architecture +CPU = -march=core-avx2 +#CPU += -mtp=zen +# -xCORE-AVX2 +# -axcode COMMON-AVX512 -axcode MIC-AVX512 -axcode CORE-AVX512 -axcode CORE-AVX2 +CXXFLAGS += ${CPU} +LINKFLAGS += ${CPU} + +# use MKL by INTEL +# https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/onemkl/link-line-advisor.html +# sequential MKL +# use the 32 bit interface (LP64) instead of 64 bit interface (ILP64) +CXXFLAGS += -qmkl=sequential -UMKL_ILP64 +LINKFLAGS += -O3 -qmkl=sequential -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread +#LINKFLAGS += -O3 -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread + +# shared libs: https://aur.archlinux.org/packages/intel-oneapi-compiler-static +# install intel-oneapi-compiler-static +# or +LINKFLAGS += -shared-intel + + +OPENMP = -qopenmp +CXXFLAGS += ${OPENMP} +LINKFLAGS += ${OPENMP} + + +# profiling tools +#CXXFLAGS += -pg +#LINKFLAGS += -pg +# -vec-report=3 +# -qopt-report=5 -qopt-report-phase=vec -qopt-report-phase=openmp +# -guide -parallel +# -guide-opts=string -guide-par[=n] -guide-vec[=n] +# -auto-p32 -simd + +# Reports: https://software.intel.com/en-us/articles/getting-the-most-out-of-your-intel-compiler-with-the-new-optimization-reports +#CXXFLAGS += -qopt-report=5 -qopt-report-phase=vec,par +#CXXFLAGS += -qopt-report=5 -qopt-report-phase=cg +# Redirect report from *.optrpt to stderr +# -qopt-report-file=stderr +# Guided paralellization +# -guide -parallel +# -guide-opts=string -guide-par[=n] -guide-vec[=n] +# -auto-p32 -simd + +## run time checks +# https://www.intel.com/content/www/us/en/develop/documentation/fortran-compiler-oneapi-dev-guide-and-reference/top/compiler-reference/compiler-options/offload-openmp-and-parallel-processing-options/par-runtime-control-qpar-runtime-control.html + + +default: ${PROGRAM} + +${PROGRAM}: ${OBJECTS} + $(LINKER) $^ ${LINKFLAGS} -o $@ + +clean: + rm -f ${PROGRAM} ${OBJECTS} *.optrpt + +clean_all:: clean + @rm -f *_ *~ *.bak *.log *.out *.tar + +run: clean ${PROGRAM} + ./${PROGRAM} + +# tar the current directory +MY_DIR = `basename ${PWD}` +tar: clean_all + @echo "Tar the directory: " ${MY_DIR} + @cd .. ;\ + tar cf ${MY_DIR}.tar ${MY_DIR} *default.mk ;\ + cd ${MY_DIR} +# tar cf `basename ${PWD}`.tar * + +doc: + doxygen Doxyfile + +######################################################################### + +.cpp.o: + $(CXX) -c $(CXXFLAGS) -o $@ $< + +.c.o: + $(CC) -c $(CFLAGS) -o $@ $< + +.f.o: + $(F77) -c $(FFLAGS) -o $@ $< + +################################################################################################## +# some tools +# Cache behaviour (CXXFLAGS += -g tracks down to source lines) +# https://software.intel.com/content/www/us/en/develop/documentation/vtune-help/top/analyze-performance/microarchitecture-analysis-group/memory-access-analysis.html + +mem: inspector +prof: vtune +cache: inspector + +gap_par_report: + ${CXX} -c -guide -parallel $(SOURCES) 2> gap.txt + +# GUI for performance report +amplifier: ${PROGRAM} + echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope + echo 0 | sudo tee /proc/sys/kernel/perf_event_paranoid + amplxe-gui & + +# GUI for Memory and Thread analyzer (race condition) +inspector: ${PROGRAM} + echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope +# inspxe-gui & + vtune-gui ./${PROGRAM} & + +advisor: + source /opt/intel/oneapi/advisor/2021.2.0/advixe-vars.sh +# /opt/intel/oneapi/advisor/latest/bin64/advixe-gui & + advisor --collect=survey ./${PROGRAM} +# advisor --collect=roofline ./${PROGRAM} + advisor --report=survey --project-dir=./ src:r=./ --format=csv --report-output=./out/survey.csv + +vtune: + echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope +# https://software.intel.com/en-us/articles/intel-advisor-2017-update-1-what-s-new + export ADVIXE_EXPERIMENTAL=roofline + vtune -collect hotspots ./${PROGRAM} + vtune -report hotspots -r r000hs > vtune.out +# vtune-gui ./${PROGRAM} & + +icc-info: + icpc -# main.cpp + +# MKL on AMD +# https://www.computerbase.de/2019-11/mkl-workaround-erhoeht-leistung-auf-amd-ryzen/ +# +# https://sites.google.com/a/uci.edu/mingru-yang/programming/mkl-has-bad-performance-on-an-amd-cpu +# export MKL_DEBUG_CPU_TYPE=5 +# export MKL_NUM_THRAEDS=1 +# export MKL_DYNAMIC=false +# on Intel compiler +# http://publicclu2.blogspot.com/2013/05/intel-complier-suite-reference-card.html diff --git a/ex3/PGI_default.mk b/ex3/PGI_default.mk new file mode 100644 index 0000000..40760e5 --- /dev/null +++ b/ex3/PGI_default.mk @@ -0,0 +1,93 @@ +# Basic Defintions for using PGI-compiler suite sequentially +# requires setting of COMPILER=PGI_ +# OPTIRUN = optirun + + +CC = pgcc +CXX = pgc++ +F77 = pgfortran +LINKER = ${CXX} + +# on mephisto: +#CXXFLAGS += -I/share/apps/atlas/include +#LINKFLAGS += -L/share/apps/atlas/lib +#LINKFLAGS += -lcblas -latlas + +#LINKFLAGS += -lblas +# Der Header muss mit extern "C" versehen werden, damit g++ alles findet. + +WARNINGS = -Minform=warn +# -Wall -pedantic -Wextra -Weffc++ -Woverloaded-virtual -W -Wfloat-equal -Wshadow -Wredundant-decls +# -pedantic -Wunreachable-code -Wextra -Winline +# -Wunreachable-code + +#PGI_PROFILING = -Minfo=ccff,loop,vect,opt,intensity,mp,accel +PGI_PROFILING = -Minfo=ccff,accel,ipa,loop,lre,mp,opt,par,unified,vect,intensity +# -Minfo +# -Mprof=time +# -Mprof=lines +# take care with option -Msafeptr +CXXFLAGS += -O3 -std=c++17 ${WARNINGS} +#CXXFLAGS += -O3 -std=c++11 -DNDEBUG ${PGI_PROFILING} ${WARNINGS} +# -fastsse -fargument-noalias ${WARNINGS} -msse3 -vec-report=3 + +default: ${PROGRAM} + +${PROGRAM}: ${OBJECTS} + $(LINKER) $^ ${LINKFLAGS} -o $@ + +clean: + @rm -f ${PROGRAM} ${OBJECTS} + +clean_all:: clean + @rm -f *_ *~ *.bak *.log *.out *.tar + +run: clean ${PROGRAM} + ./${PROGRAM} + +# tar the current directory +MY_DIR = `basename ${PWD}` +tar: clean_all + @echo "Tar the directory: " ${MY_DIR} + @cd .. ;\ + tar cf ${MY_DIR}.tar ${MY_DIR} *default.mk ;\ + cd ${MY_DIR} +# tar cf `basename ${PWD}`.tar * + +doc: + doxygen Doxyfile + +######################################################################### + +.cpp.o: + $(CXX) -c $(CXXFLAGS) -o $@ $< + +.c.o: + $(CC) -c $(CFLAGS) -o $@ $< + +.f.o: + $(F77) -c $(FFLAGS) -o $@ $< + +################################################################################################## +# # some tools +# # Simple run time profiling of your code +# # CXXFLAGS += -g -pg +# # LINKFLAGS += -pg + + +# Profiling options PGI, see: pgcollect -help +# CPU_PROF = -allcache +CPU_PROF = -time +# GPU_PROF = -cuda=gmem,branch,cc13 -cudainit +#GPU_PROF = -cuda=branch:cc20 +# +PROF_FILE = pgprof.out + +cache: prof + +prof: ${PROGRAM} + ${OPTIRUN} ${BINDIR}pgcollect $(CPU_PROF) ./$^ + ${OPTIRUN} ${BINDIR}pgprof -exe ./$^ $(PROF_FILE) & + +info: + pgaccelinfo -v diff --git a/ex3/ex3/Makefile b/ex3/ex3/Makefile new file mode 100644 index 0000000..4b0446d --- /dev/null +++ b/ex3/ex3/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_ + + +SOURCES = main.cpp benchmarks.cpp benchmark_tests.cpp factorization_solve.cpp factorization_solve_tests.cpp vdop.cpp getmatrix.cpp +OBJECTS = $(SOURCES:.cpp=.o) + +PROGRAM = main.${COMPILER} + +# uncomment the next to lines for debugging and detailed performance analysis +CXXFLAGS += -g +LINKFLAGS += -g +# do not use -pg with PGI compilers + +ifndef COMPILER + COMPILER=GCC_ +endif + +include ../${COMPILER}default.mk diff --git a/ex3/ex3/benchmark_tests.cpp b/ex3/ex3/benchmark_tests.cpp new file mode 100644 index 0000000..1a873d5 --- /dev/null +++ b/ex3/ex3/benchmark_tests.cpp @@ -0,0 +1,333 @@ +#include "benchmark_tests.h" +#include "benchmarks.h" +#include +#include +#include +using namespace std::chrono; + +vector test_A(const size_t &NLOOPS, const size_t &N, const function&, const vector&)>& scalar_function) +{ + cout << "#################### (A) ####################" << endl; + cout << "\nLOOPS = " << NLOOPS << endl; + cout << "\nN = " << N << endl; + + +// Memory allocation + cout << "Memory allocation\n"; + + vector x(N), y(N); + + cout.precision(2); + cout << 2.0*N *sizeof(x[0]) / 1024 / 1024 / 1024 << " GByte Memory allocated\n"; + cout.precision(6); + + +// Data initialization +// Special: x_i = i+1; y_i = 1/x_i ==> == N + + for (size_t i = 0; i < N; ++i) + { + x[i] = i % 219 + 1; + y[i] = 1.0/x[i]; + } + + + cout << "\nStart Benchmarking scalar\n"; + + auto t1 = system_clock::now(); // start timer +// Do calculation + double check(0.0),ss(0.0); + for (size_t i = 0; i < NLOOPS; ++i) + { + check = scalar_function(x, y); + ss += check; // prevents the optimizer from removing unused calculation results. + } + + auto t2 = system_clock::now(); // stop timer + auto duration = duration_cast(t2 - t1); // duration in microseconds + double t_diff = static_cast(duration.count()) / 1e6; // overall duration in seconds + t_diff = t_diff/NLOOPS; // duration per loop seconds + + + +// Check the correct result + cout << "\n = " << check << endl; + if (static_cast(check) != N) + cout << " !! W R O N G result !!\n"; + cout << endl; + + +// Timings and Performance + cout << endl; + cout.precision(2); + + + double Gflops = 2.0*N / t_diff / 1024 / 1024 / 1024; + double MemBandwidth = 2.0*N / t_diff / 1024 / 1024 / 1024 * sizeof(x[0]); + + cout << "Total duration : " << t_diff*NLOOPS << endl; + cout << "Timing in sec. : " << t_diff << endl; + cout << "GFLOPS : " << Gflops << endl; + cout << "GiByte/s : " << MemBandwidth << endl; + +//########################################################################## + cout << "\nStart Benchmarking norm\n"; + + auto t3 = system_clock::now(); // start timer +// Do calculation + double ss2(0.0); + for (size_t i = 0; i < NLOOPS; ++i) + { + auto sk1 = sqrt(scalar(x, x)); + ss2 += sk1; // prevents the optimizer from removing unused calculation results. + } + + auto t4 = system_clock::now(); // stop timer + auto duration2 = duration_cast(t4 - t3); // duration in microseconds + double t_diff2 = static_cast(duration2.count()) / 1e6; // overall duration in seconds + t_diff2 = t_diff2/NLOOPS; // duration per loop seconds + + + cout << "ss(norm): " << ss2 << endl; + cout << "Timing in sec. : " << t_diff2 << endl; + + + + + + + return vector{t_diff, Gflops, MemBandwidth}; +} + + +vector test_B(const size_t &NLOOPS, const size_t &N, const size_t &M, const function(const vector&, const vector&)>& MatVec_function) +{ + cout << "#################### (B) ####################" << endl; + + cout << "\nLOOPS = " << NLOOPS << endl; + cout << "\nN = " << N << endl; + cout << "\nM = " << M << endl; + +// Memory allocation + cout << "Memory allocation\n"; + + vector A(M*N); + vector x(N); + + cout.precision(2); + cout << (1.0*M*N + N) * sizeof(x[0]) / 1024 / 1024 / 1024 << " GByte Memory allocated\n"; + cout.precision(6); + +// Data initialization + + for (size_t i = 0; i < M; ++i) + for (size_t j = 0; j < N; ++j) + A[N*i + j] = (i + j) % 219 + 1; + + + for (size_t j = 0; j < N; ++j) + { + x[j] = 1.0/A[N*17 + j]; + } + + cout << "\nStart Benchmarking MatVec\n"; + + auto t1 = system_clock::now(); // start timer +// Do calculation + vector b(M); + + for (size_t i = 0; i < NLOOPS; ++i) + { + b = MatVec_function(A, x); + } + + auto t2 = system_clock::now(); // stop timer + auto duration = duration_cast(t2 - t1); // duration in microseconds + double t_diff = static_cast(duration.count()) / 1e6; // overall duration in seconds + t_diff = t_diff/NLOOPS; // duration per loop seconds + + +// Check the correct result + cout << "\n = " << b[17] << endl; + if (static_cast(b[17]) != N) + { + cout << " !! W R O N G result !!\n"; + } + cout << endl; + + +// Timings and Performance + cout << endl; + cout.precision(2); + + double Gflops = (2.0*N*M) / t_diff / 1024 / 1024 / 1024; + double MemBandwidth = (2.0*N*M + M)/ t_diff / 1024 / 1024 / 1024 * sizeof(x[0]); + + cout << "Total duration : " << t_diff*NLOOPS << endl; + cout << "Timing in sec. : " << t_diff << endl; + cout << "GFLOPS : " << Gflops << endl; + cout << "GiByte/s : " << MemBandwidth << endl; + + + + return vector{t_diff, Gflops, MemBandwidth}; +} + + +vector test_C(const size_t &NLOOPS, const size_t &L, const size_t &M, const size_t &N, const function(const vector&, const vector&, size_t const &shared_dim)>& MatMat_function) +{ + cout << "#################### (C) ####################" << endl; + cout << "\nLOOPS = " << NLOOPS << endl; + cout << "\nL = " << L << endl; + cout << "\nM = " << M << endl; + cout << "\nN = " << N << endl; + + +// Memory allocation + cout << "Memory allocation\n"; + + vector A(M*L); + vector B(L*N); + + cout.precision(2); + cout << (1.0*M*L + L*N) *sizeof(A[0]) / 1024 / 1024 / 1024 << " GByte Memory allocated\n"; + cout.precision(6); + + +// Data initialization + + for (size_t i = 0; i < M; ++i) + for (size_t k = 0; k < L; ++k) + A[L*i + k] = (i + k) % 219 + 1; + + for (size_t k = 0; k < L; ++k) + for (size_t j = 0; j < N; ++j) + B[N*k + j] = 1.0/A[L*17 + k]; + + + cout << "\nStart Benchmarking MatMat\n"; + + auto t1 = system_clock::now(); // start timer +// Do calculation + vector C(M*N); + double check; + double check_sum = 0; + + for (size_t i = 0; i < NLOOPS; ++i) + { + C = MatMat_function(A, B, L); + + check = C[N*17]; + check_sum += check; // prevents the optimizer from removing unused calculation results. + } + cout << check_sum; + + auto t2 = system_clock::now(); // stop timer + auto duration = duration_cast(t2 - t1); // duration in microseconds + double t_diff = static_cast(duration.count()) / 1e6; // overall duration in seconds + t_diff = t_diff/NLOOPS; // duration per loop seconds + + +// Check the correct result + cout << "\n C[17,0] = " << check << endl; + if (static_cast(check) != L) + { + cout << " !! W R O N G result !!, should be " << L <<"\n"; + } + cout << endl; + +// Timings and Performance + cout << endl; + cout.precision(2); + + + double Gflops = (2.0*L*N*M) / t_diff / 1024 / 1024 / 1024; + double MemBandwidth = (2.0*L*N*M + M*N)/ t_diff / 1024 / 1024 / 1024 * sizeof(A[0]); + + cout << "Total duration : " << t_diff*NLOOPS << endl; + cout << "Timing in sec. : " << t_diff << endl; + cout << "GFLOPS : " << Gflops << endl; + cout << "GiByte/s : " << MemBandwidth << endl; + + + + return vector{t_diff, Gflops, MemBandwidth}; +} + + +vector test_D(const size_t &NLOOPS, const size_t &N, const size_t &p) +{ + cout << "#################### (D) ####################" << endl; + cout << "\nLOOPS = " << NLOOPS << endl; + cout << "\nN = " << N << endl; + cout << "\np = " << p << endl; + +// Memory allocation + cout << "Memory allocation\n"; + + vector a(p + 1, 0); + vector x(N); + + cout.precision(2); + cout << (1.0*(p + 1) + N) *sizeof(x[0]) / 1024 / 1024 / 1024 << " GByte Memory allocated\n"; + cout.precision(6); + +// Data initialization + + for (size_t j = 0; j < N; ++j) + x[j] = 1.0*j; + + for (size_t k = 0; k < p + 1; ++k) + a[k] = pow(-1.0, k); // poly(x) = 1 - x + x^2 - x^3 + x^4 - ... + + + + cout << "\nStart Benchmarking poly\n"; + + auto t1 = system_clock::now(); // start timer +// Do calculation + vector y(N); + double check; + double check_sum; + + for (size_t i = 0; i < NLOOPS; ++i) + { + y = poly(a, x); + check = y[0]; + + check_sum += check; // prevents the optimizer from removing unused calculation results. + } + + auto t2 = system_clock::now(); // stop timer + auto duration = duration_cast(t2 - t1); // duration in microseconds + double t_diff = static_cast(duration.count()) / 1e6; // overall duration in seconds + t_diff = t_diff/NLOOPS; // duration per loop seconds + + + +// Check the correct result + cout << "\n poly(" << x[0] << ") = " << check << endl; + if (abs(check - 1.0) > 1.0/1e6) + { + cout << " !! W R O N G result !!\n"; + } + cout << endl; + + +// Timings and Performance + cout << endl; + cout.precision(2); + + + double Gflops = (N*(p + 1)*3.0) / t_diff / 1024 / 1024 / 1024; + double MemBandwidth = (N*(2.0 + 3.0*(p + 1)))/ t_diff / 1024 / 1024 / 1024 * sizeof(x[0]); + + cout << "Total duration : " << t_diff*NLOOPS << endl; + cout << "Timing in sec. : " << t_diff << endl; + cout << "GFLOPS : " << Gflops << endl; + cout << "GiByte/s : " << MemBandwidth << endl; + + + + return vector{t_diff, Gflops, MemBandwidth}; +} \ No newline at end of file diff --git a/ex3/ex3/benchmark_tests.h b/ex3/ex3/benchmark_tests.h new file mode 100644 index 0000000..3cb41b0 --- /dev/null +++ b/ex3/ex3/benchmark_tests.h @@ -0,0 +1,15 @@ +#pragma once +#include +#include +using namespace std; + + + + +vector test_A(const size_t &NLOOPS, const size_t &N, const function&, const vector&)>& scalar_function); + +vector test_B(const size_t &NLOOPS, const size_t &N, const size_t &M, const function(const vector&, const vector&)>& MatVec_function); + +vector test_C(const size_t &NLOOPS, const size_t &L, const size_t &M, const size_t &N, const function(const vector&, const vector&, size_t const &shared_dim)>& MatMat_function); + +vector test_D(const size_t &NLOOPS, const size_t &N, const size_t &p); \ No newline at end of file diff --git a/ex3/ex3/benchmarks.cpp b/ex3/ex3/benchmarks.cpp new file mode 100644 index 0000000..358008b --- /dev/null +++ b/ex3/ex3/benchmarks.cpp @@ -0,0 +1,245 @@ +#include "benchmarks.h" +#include "vdop.h" +#include +#include +#include +#include // assert() + + +#ifdef __INTEL_CLANG_COMPILER +#pragma message(" ########## Use of MKL ###############") +#include +#else +#pragma message(" ########## Use of CBLAS ###############") + +#include // cBLAS Library +#include // Lapack + +#endif + + + +// (A) Inner product of two vectors (from skalar_stl) +double scalar(vector const &x, vector const &y) +{ + assert(x.size() == y.size()); + size_t const N = x.size(); + double sum = 0.0; + for (size_t i = 0; i < N; ++i) + { + sum += x[i] * y[i]; + } + return sum; +} + +// (A) 5.(b) Kahan scalar product +double Kahan_skalar(vector const &x, vector const &y) +{ + double sum = 0.0; + double c = 0.0; + size_t n = x.size(); + for (size_t i = 0; i < n; ++i) + { + double z = x[i]*y[i] - c; // c is the part that got lost in the last iteration + double t = sum + z; // when adding sum + z, the lower digits are lost if sum is large + c = (t - sum) - z; // now we recover the lower digits to add in the next iteration + sum = t; + } + return sum; +} + +// (A) 6. cBLAS scalar product +double scalar_cBLAS(vector const &x, vector const &y) +{ + return cblas_ddot(x.size(), x.data(), 1, y.data(), 1); // x.data() = &x[0] +} + + +// (B) Matrix-vector product (from intro_vector_densematrix) +vector MatVec(vector const &A, vector const &x) +{ + size_t const nelem = A.size(); + size_t const N = x.size(); + assert(nelem % N == 0); // make sure multiplication is possible + size_t const M = nelem/N; + + + vector b(M); + + for (size_t i = 0; i < M; ++i) + { + double tmp = 0.0; + for (size_t j = 0; j < N; ++j) + tmp += A[N*i + j] * x[j]; + b[i] = tmp; + } + + return b; +} + +// (B) cBLAS Matrix-vector product +vector MatVec_cBLAS(vector const &A, vector const &x) +{ + size_t const nelem = A.size(); + size_t const N = x.size(); + assert(nelem % N == 0); // make sure multiplication is possible + size_t const M = nelem/N; + + + vector b(M); + + cblas_dgemv(CblasRowMajor, CblasNoTrans, M, N, 1.0, A.data(), N, x.data(), 1, 0.0, b.data(), 1); + + return b; +} + + +// (C) Matrix-matrix product +vector MatMat(vector const &A, vector const &B, size_t const &L) +{ + size_t const nelem_A = A.size(); + size_t const nelem_B = B.size(); + + assert(nelem_A % L == 0 && nelem_B % L == 0); + + size_t const M = nelem_A/L; + size_t const N = nelem_B/L; + + + vector C(M*N); + + + + for (size_t i = 0; i < M; ++i) + { + for (size_t k = 0; k < L; ++k) + { + for (size_t j = 0; j < N; ++j) + { + C[N*i + j] += A[L*i + k]*B[N*k + j]; + } + + } + } + + return C; +} + +// (C) cBLAS matrix-matrix product +vector MatMat_cBLAS(vector const &A, vector const &B, size_t const &L) +{ + size_t const nelem_A = A.size(); + size_t const nelem_B = B.size(); + + assert(nelem_A % L == 0 && nelem_B % L == 0); + + size_t const M = nelem_A/L; + size_t const N = nelem_B/L; + + + vector C(M*N); + + cblas_dgemm(CblasRowMajor, CblasNoTrans, CblasNoTrans, M, N, L, 1.0, A.data(), L, B.data(), N, 0.0, C.data(), N); + + return C; +} + + +// (D) Evaluation of a polynomial function +vector poly(vector const &a, vector const &x) +{ + size_t const N = x.size(); + size_t const p = a.size() - 1; + vector y(N, 0); + + for (size_t i = 0; i < N; ++i) + { + double x_temp = x[i]; + double y_temp = 0; + for (size_t k = 0; k < p + 1; ++k) + { + y_temp += x_temp*y_temp + a[p - k]; + } + y[i] = y_temp; + } + + return y; +} + + +// (E) Solves linear system of equations +void JacobiSolve(CRS_Matrix const &SK, vector const &f, vector &u) +{ + const double omega = 1.0; + const int maxiter = 1000; + const double tol = 1e-5, // tolerance + tol2 = tol * tol; // tolerance^2 + + int nrows = SK.Nrows(); // number of rows == number of columns + assert( nrows == static_cast(f.size()) && f.size() == u.size() ); + + cout << endl << " Start Jacobi solver for " << nrows << " d.o.f.s" << endl; + // Choose initial guess + for (int k = 0; k < nrows; ++k) + { + u[k] = 0.0; // u := 0 + } + + vector dd(nrows); // matrix diagonal + vector r(nrows); // residual + vector w(nrows); // correction + + SK.GetDiag(dd); // dd := diag(K) + ////DebugVector(dd);{int ijk; cin >> ijk;} + + // Initial sweep + SK.Defect(r, f, u); // r := f - K*u + + vddiv(w, r, dd); // w := D^{-1}*r + double sigma0 = dscapr(w, r); // s0 := + + // Iteration sweeps + int iter = 0; + double sigma = sigma0; + while ( sigma > tol2 * sigma0 && maxiter > iter) + { + ++iter; + vdaxpy(u, u, omega, w ); // u := u + om*w + SK.Defect(r, f, u); // r := f - K*u + vddiv(w, r, dd); // w := D^{-1}*r + sigma = dscapr(w, r); // s0 := +// cout << "Iteration " << iter << " : " << sqrt(sigma/sigma0) << endl; + } + cout << "aver. Jacobi rate : " << exp(log(sqrt(sigma / sigma0)) / iter) << " (" << iter << " iter)" << endl; + cout << "final error: " << sqrt(sigma / sigma0) << " (rel) " << sqrt(sigma) << " (abs)\n"; + + return; +} + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ex3/ex3/benchmarks.h b/ex3/ex3/benchmarks.h new file mode 100644 index 0000000..a4d7900 --- /dev/null +++ b/ex3/ex3/benchmarks.h @@ -0,0 +1,89 @@ +#pragma once +#include "getmatrix.h" +#include + +using namespace std; + +/** (A) Inner product of two vectors (from skalar_stl) + @param[in] x vector + @param[in] y vector + @return resulting Euclidian inner product +*/ +double scalar(vector const &x, vector const &y); + +/** (A) 5.(b) Inner product of two vectors using the Kahan scalar product + @param[in] x vector + @param[in] y vector + @return resulting Euclidian inner product +*/ +double Kahan_skalar(vector const &x, vector const &y); + +/** (A) 6. cBLAS scalar product of two vectors + @param[in] x vector + @param[in] y vector + @return resulting Euclidian inner product +*/ +double scalar_cBLAS(vector const &x, vector const &y); + + +/** (B) Matrix-vector product (from intro_vector_densematrix) + * @param[in] A dense matrix (1D access) + * @param[in] u vector + * + * @return resulting vector +*/ +vector MatVec(vector const &A, vector const &x); + +/** (B) 6. cBLAS Matrix-vector product + * @param[in] A dense matrix (1D access) + * @param[in] u vector + * + * @return resulting vector +*/ +vector MatVec_cBLAS(vector const &A, vector const &x); + + +/** (C) Matrix-matrix product + * @param[in] A MxL dense matrix (1D access) + * @param[in] B LxN dense matrix (1D access) + * @param[in] shared_dim shared dimension L + * + * @return resulting MxN matrix +*/ +vector MatMat(vector const &A, vector const &B, size_t const &shared_dim); + +/** (C) 6. cBLAS Matrix-matrix product + * @param[in] A MxL dense matrix (1D access) + * @param[in] B LxN dense matrix (1D access) + * @param[in] shared_dim shared dimension L + * + * @return resulting MxN matrix +*/ +vector MatMat_cBLAS(vector const &A, vector const &B, size_t const &shared_dim); + + +/** (D) Evaluation of a polynomial function using Horner's scheme + * @param[in] a coefficient vector + * @param[in] x vector with input values + * + * @return vector with output values +*/ +vector poly(vector const &a, vector const &x); + + +/** (E) Solves linear system of equations K @p u = @p f via the Jacobi iteration (from jaboci_oo_stl) + * We use a distributed symmetric CSR matrix @p SK and initial guess of the + * solution is set to 0. + * @param[in] SK CSR matrix + * @param[in] f distributed local vector storing the right hand side + * @param[out] u accumulated local vector storing the solution. +*/ +void JacobiSolve(CRS_Matrix const &SK, vector const &f, vector &u); + + + + + + + + diff --git a/ex3/ex3/factorization_solve.cpp b/ex3/ex3/factorization_solve.cpp new file mode 100644 index 0000000..adff955 --- /dev/null +++ b/ex3/ex3/factorization_solve.cpp @@ -0,0 +1,39 @@ +#include "factorization_solve.h" +#include +#include +#include +#include +#include + +using namespace std; + + +void factorization_solve(vector &A, vector &b, const int32_t &n_rhs) +{ + int32_t nelem = A.size(); + int32_t N = sqrt(nelem); + assert(N == static_cast(b.size())/n_rhs); + + vector IPIV(N); // pivot indices + int info_factorization; + + dgetrf_(&N, &N, A.data(), &N, IPIV.data(), &info_factorization); + + const char transp = 'N'; + int info_solve; + dgetrs_(&transp, &N, &n_rhs, A.data(), &N, IPIV.data(), b.data(), &N, &info_solve, 1); // 1 is length of parameter 'N' + +} + +void print_matrix(vector &A, size_t M, size_t N) +{ + for (size_t i = 0; i < M; ++i) + { + for (size_t j = 0; j < N; ++j) + { + cout << A[N*i + j] << "\t"; + } + cout << endl; + } + cout << endl; +} \ No newline at end of file diff --git a/ex3/ex3/factorization_solve.h b/ex3/ex3/factorization_solve.h new file mode 100644 index 0000000..20e15db --- /dev/null +++ b/ex3/ex3/factorization_solve.h @@ -0,0 +1,21 @@ +#pragma once +#include +#include +using namespace std; + + +/** Solve linear system of equations with multiple right hand sides using LU factorization + * @param[inout] A NxN Matrix (1D access), gets modified to contain the LU decomposition of A + * @param[inout] B N x n_rhs Matrix of right-hand-sides (1D access), gets modified to contain the solution vectors x + * @param[in] n_rhs number of right-hand-sides b + * +*/ +void factorization_solve(vector &A, vector &b, const int32_t &n_rhs); + +/** Print a matrix to console + * @param[in] A MxN Matrix (1D access) + * @param[in] M rows + * @param[in] N columns + * +*/ +void print_matrix(vector &A, size_t M, size_t N); \ No newline at end of file diff --git a/ex3/ex3/factorization_solve_tests.cpp b/ex3/ex3/factorization_solve_tests.cpp new file mode 100644 index 0000000..1a88355 --- /dev/null +++ b/ex3/ex3/factorization_solve_tests.cpp @@ -0,0 +1,89 @@ +#include "factorization_solve_tests.h" +#include "factorization_solve.h" +#include "benchmarks.h" +#include +#include + +using namespace std::chrono; + +void CheckCorrectness() +{ + cout.precision(4); + + size_t N = 5; + size_t n_rhs = 5; + vector A(N*N); + vector b(N*n_rhs); + + // initialize A + for (size_t i = 0; i < N; ++i) + { + for (size_t j = 0; j < N; ++j) + if (i == j) + A[N*i + j] = 4.0; + else + A[N*i + j] = 1.0/((i - j)*(i - j)); + } + const vector A_copy = A; + + // initialize b as identity matrix + for (size_t j = 0; j < N; ++j) + { + for (size_t l = 0; l < n_rhs; ++l) + if (l == j) + b[N*l + j] = 1.0; + else + b[N*l + j] = 0.0; + } + + cout << "A = " << endl; + print_matrix(A, N, N); + cout << "b = " << endl; + print_matrix(b, N, n_rhs); + + // solve system + factorization_solve(A, b, n_rhs); + + vector check_matrix_identity = MatMat_cBLAS(A_copy, b, N); + cout << "A*A^{-1} = " << endl; + print_matrix(check_matrix_identity, N, n_rhs); +} + + +void CheckDuration(const size_t &N) +{ + for (size_t n_rhs : {1, 2, 4, 8, 16, 32}) + { + auto time_start = system_clock::now(); + + vector A(N*N); + vector b(N*n_rhs); + + // initialize A + for (size_t i = 0; i < N; ++i) + { + for (size_t j = 0; j < N; ++j) + if (i == j) + A[N*i + j] = 4.0; + else + A[N*i + j] = 1.0/((i - j)*(i - j)); + } + + // initialize b + for (size_t j = 0; j < N; ++j) + for (size_t l = 0; l < n_rhs; ++l) + b[N*l + j] = 1.0; + + + // solve system + factorization_solve(A, b, n_rhs); + + + + auto time_end = system_clock::now(); + auto duration = duration_cast(time_end - time_start); // duration in microseconds + double t_diff = static_cast(duration.count()) / 1e6; // overall duration in seconds + + cout << "n_rhs = " << n_rhs << "\tTime per rhs: " << t_diff/n_rhs << endl; + } +} diff --git a/ex3/ex3/factorization_solve_tests.h b/ex3/ex3/factorization_solve_tests.h new file mode 100644 index 0000000..573f17f --- /dev/null +++ b/ex3/ex3/factorization_solve_tests.h @@ -0,0 +1,7 @@ +#pragma once +#include + + +void CheckCorrectness(); + +void CheckDuration(const size_t &N); \ No newline at end of file diff --git a/ex3/ex3/geom.cpp b/ex3/ex3/geom.cpp new file mode 100644 index 0000000..01c674b --- /dev/null +++ b/ex3/ex3/geom.cpp @@ -0,0 +1,522 @@ +// see: http://llvm.org/docs/CodingStandards.html#include-style +#include "geom.h" + +#include +#include +#include +#include +#include +#include +#include +using namespace std; + +Mesh::Mesh(int ndim, int nvert_e, int ndof_e) + : _nelem(0), _nvert_e(nvert_e), _ndof_e(ndof_e), _nnode(0), _ndim(ndim), _ia(0), _xc(0) +{ +} + +Mesh::~Mesh() +{} + +void Mesh::SetValues(std::vector &v, const std::function &func) const +{ + int const nnode = Nnodes(); // number of vertices in mesh + assert( nnode == static_cast(v.size()) ); + for (int k = 0; k < nnode; ++k) + { + v[k] = func( _xc[2 * k], _xc[2 * k + 1] ); + } +} + + +void Mesh::Debug() const +{ + cout << "\n ############### Debug M E S H ###################\n"; + cout << "\n ............... Coordinates ...................\n"; + for (int k = 0; k < _nnode; ++k) + { + cout << k << " : " ; + for (int i = 0; i < _ndof_e; ++i ) + { + cout << _xc[2*k+i] << " "; + } + cout << endl; + } + cout << "\n ............... Elements ...................\n"; + for (int k = 0; k < _nelem; ++k) + { + cout << k << " : "; + for (int i = 0; i < _ndof_e; ++i ) + cout << _ia[_ndof_e * k + i] << " "; + cout << endl; + } + return; +} + +void Mesh::Write_ascii_matlab(std::string const &fname, std::vector const &v) const +{ + assert(Nnodes() == static_cast(v.size())); // fits vector length to mesh information? + + ofstream fout(fname); // open file ASCII mode + if ( !fout.is_open() ) + { + cout << "\nFile " << fname << " has not been opened.\n\n" ; + assert( fout.is_open() && "File not opened." ); + } + + string const DELIMETER(" "); // define the same delimeter as in matlab/ascii_read*.m + int const OFFSET(1); // convert C-indexing to matlab + + // Write data: #nodes, #space dimensions, #elements, #vertices per element + fout << Nnodes() << DELIMETER << Ndims() << DELIMETER << Nelems() << DELIMETER << NverticesElements() << endl; + + // Write cordinates: x_k, y_k in seperate lines + assert( Nnodes()*Ndims() == static_cast(_xc.size())); + for (int k = 0, kj = 0; k < Nnodes(); ++k) + { + for (int j = 0; j < Ndims(); ++j, ++kj) + { + fout << _xc[kj] << DELIMETER; + } + fout << endl; + } + + // Write connectivity: ia_k,0, ia_k,1 etc in seperate lines + assert( Nelems()*NverticesElements() == static_cast(_ia.size())); + for (int k = 0, kj = 0; k < Nelems(); ++k) + { + for (int j = 0; j < NverticesElements(); ++j, ++kj) + { + fout << _ia[kj] + OFFSET << DELIMETER; // C to matlab + } + fout << endl; + } + + // Write vector + for (int k = 0; k < Nnodes(); ++k) + { + fout << v[k] << endl; + } + + fout.close(); + return; +} + + +void Mesh::Visualize(std::vector const &v) const +{ + // define external command + const string exec_m("matlab -nosplash < visualize_results.m"); // Matlab + //const string exec_m("octave --no-window-system --no-gui visualize_results.m"); // Octave + //const string exec_m("flatpak run org.octave.Octave visualize_results.m"); // Octave (flatpak): desktop GH + + const string fname("uv.txt"); + Write_ascii_matlab(fname, v); + + int ierror = system(exec_m.c_str()); // call external command + + if (ierror != 0) + { + cout << endl << "Check path to Matlab/octave on your system" << endl; + } + cout << endl; + return; +} + + + + +// ##################################################################### +Mesh_2d_3_square::Mesh_2d_3_square(int nx, int ny, int myid, int procx, int procy) + : Mesh(2, 3, 3), // two dimensions, 3 vertices, 3 dofs + _myid(myid), _procx(procx), _procy(procy), _neigh{{-1, -1, -1, -1}}, _color(0), +_xl(0.0), _xr(1.0), _yb(0.0), _yt(1.0), _nx(nx), _ny(ny) +{ + //void IniGeom(int const myid, int const procx, int const procy, int neigh[], int &color) + int const ky = _myid / _procx; + int const kx = _myid % _procy; // MOD(myid,procx) + // Determine the neighbors of domain/rank myid + _neigh[0] = (ky == 0) ? -1 : _myid - _procx; // South + _neigh[1] = (kx == _procx - 1) ? -1 : _myid + 1; // East + _neigh[2] = (ky == _procy - 1) ? -1 : _myid + _procx; // North + _neigh[3] = (kx == 0) ? -1 : _myid - 1; // West + + _color = (kx + ky) & 1 ; + + // subdomain is part of unit square + double const hx = 1. / _procx; + double const hy = 1. / _procy; + _xl = kx * hx; // left + _xr = (kx + 1) * hx; // right + _yb = ky * hy; // bottom + _yt = (ky + 1) * hy; // top + + // Calculate coordinates + int const nnode = (_nx + 1) * (_ny + 1); // number of nodes + Resize_Coords(nnode, 2); // coordinates in 2D [nnode][ndim] + GetCoordsInRectangle(_nx, _ny, _xl, _xr, _yb, _yt, GetCoords().data()); + + // Calculate element connectivity (linear triangles) + int const nelem = 2 * _nx * _ny; // number of elements + Resize_Connectivity(nelem, 3); // connectivity matrix [nelem][3] + GetConnectivityInRectangle(_nx, _ny, GetConnectivity().data()); + + return; +} + + +void Mesh_2d_3_square::SetU(std::vector &u) const +{ + int dx = _nx + 1; + for (int j = 0; j <= _ny; ++j) + { + int k = j * dx; + for (int i = 0; i <= _nx; ++i, ++k) + { + u[k] = 0.0; + } + } + +} + +void Mesh_2d_3_square::SetF(std::vector &f) const +{ + int dx = _nx + 1; + for (int j = 0; j <= _ny; ++j) + { + int k = j * dx; + for (int i = 0; i <= _nx; ++i, ++k) + { + f[k] = 1.0; + } + } + +} + + +std::vector Mesh_2d_3_square::Index_DirichletNodes() const +{ + int const dx = 1, + dy = _nx + 1, + bl = 0, + br = _nx, + tl = _ny * (_nx + 1), + tr = (_ny + 1) * (_nx + 1) - 1; + int const start[4] = { bl, br, tl, bl}, + end[4] = { br, tr, tr, tl}, + step[4] = { dx, dy, dx, dy}; + + vector idx(0); + for (int j = 0; j < 4; j++) + { + if (_neigh[j] < 0) + { + for (int i = start[j]; i <= end[j]; i += step[j]) + { + idx.push_back(i); // node i is Dirichlet node + } + } + } + // remove multiple elements + sort(idx.begin(), idx.end()); // sort + idx.erase( unique(idx.begin(), idx.end()), idx.end() ); // remove duplicate data + + return idx; +} + +void Mesh_2d_3_square::SaveVectorP(std::string const &name, vector const &u) const +{ +// construct the file name for subdomain myid + const string tmp( std::to_string(_myid / 100) + to_string((_myid % 100) / 10) + to_string(_myid % 10) ); + + const string namep = name + "." + tmp; + ofstream ff(namep.c_str()); + ff.precision(6); + ff.setf(ios::fixed, ios::floatfield); + + // assumes tensor product grid in unit square; rowise numbered (as generated in class constructor) + // output is provided for tensor product grid visualization ( similar to Matlab-surf() ) + auto const &xc = GetCoords(); + int k = 0; + for (int j = 0; j <= _ny; ++j) + { + for (int i = 0; i <= _nx; ++i, ++k) + ff << xc[2 * k + 0] << " " << xc[2 * k + 1] << " " << u[k] << endl; + ff << endl; + } + + ff.close(); + return; +} + +void Mesh_2d_3_square::GetCoordsInRectangle(int const nx, int const ny, + double const xl, double const xr, double const yb, double const yt, + double xc[]) +{ + const double hx = (xr - xl) / nx, + hy = (yt - yb) / ny; + + int k = 0; + for (int j = 0; j <= ny; ++j) + { + const double y0 = yb + j * hy; + for (int i = 0; i <= nx; ++i, k += 2) + { + xc[k ] = xl + i * hx; + xc[k + 1] = y0; + } + } + + return; +} + +void Mesh_2d_3_square::GetConnectivityInRectangle(int const nx, int const ny, int ia[]) +{ + const int dx = nx + 1; + int k = 0; + int l = 0; + for (int j = 0; j < ny; ++j, ++k) + { + for (int i = 0; i < nx; ++i, ++k) + { + ia[l ] = k; + ia[l + 1] = k + 1; + ia[l + 2] = k + dx + 1; + l += 3; + ia[l ] = k; + ia[l + 1] = k + dx; + ia[l + 2] = k + dx + 1; + l += 3; + } + } + return; +} + +// #################### still some old code (--> MPI) ############################ + + +// Copies the values of w corresponding to the boundary +// South (ib==1), East (ib==2), North (ib==3), West (ib==4) + +void GetBound(int const ib, int const nx, int const ny, double const w[], double s[]) +{ + const int //dx = 1, + dy = nx + 1, + bl = 0, + br = nx, + tl = ny * (nx + 1), + tr = (ny + 1) * (nx + 1) - 1; + switch (ib) + { + case 1: + { + for (int i = bl, j = 0; i <= br; ++i, ++j) + s[j] = w[i]; + break; + } + case 3: + { + for (int i = tl, j = 0; i <= tr; ++i, ++j) + s[j] = w[i]; + break; + } + case 4: + { + for (int i = bl, j = 0; i <= tl; i += dy, ++j) + s[j] = w[i]; + break; + } + case 2: + { + for (int i = br, j = 0; i <= tr; i += dy, ++j) + s[j] = w[i]; + break; + } + default: + { + cout << endl << "Wrong parameter ib in " << __FILE__ << ":" << __LINE__ << endl; + } + } + return; +} + +// ---------------------------------------------------------------------------------------------------------- +// Computes w: = w + s at nodes on the boundary +// South (ib == 1), East (ib == 2), North (ib == 3), West (ib == 4) + +void AddBound(int const ib, int const nx, int const ny, double w[], double const s[]) +{ + int const dy = nx + 1, + bl = 0, + br = nx, + tl = ny * (nx + 1), + tr = (ny + 1) * (nx + 1) - 1; + switch (ib) + { + case 1: + { + for (int i = bl, j = 0; i <= br; ++i, ++j) + w[i] += s[j]; + break; + } + case 3: + { + for (int i = tl, j = 0; i <= tr; ++i, ++j) + w[i] += s[j]; + break; + } + case 4: + { + for (int i = bl, j = 0; i <= tl; i += dy, ++j) + w[i] += s[j]; + break; + } + case 2: + { + for (int i = br, j = 0; i <= tr; i += dy, ++j) + w[i] += s[j]; + break; + } + default: + { + cout << endl << "Wrong parameter ib in " << __FILE__ << ":" << __LINE__ << endl; + } + } + return; +} + + +// #################################################################### + +Mesh_2d_3_matlab::Mesh_2d_3_matlab(string const &fname) + : Mesh(2, 3, 3), // two dimensions, 3 vertices, 3 dofs + bedges(0) +{ + ifstream ifs(fname); + if (!(ifs.is_open() && ifs.good())) + { + cerr << "Mesh_2d_3_matlab: Error cannot open file " << fname << endl; + assert(ifs.is_open()); + } + + int const OFFSET(1); // Matlab to C indexing + cout << "ASCI file " << fname << " opened" << endl; + + // Read some mesh constants + int nnode, ndim, nelem, nvert_e; + ifs >> nnode >> ndim >> nelem >> nvert_e; + cout << nnode << " " << ndim << " " << nelem << " " << nvert_e << endl; + assert(ndim == 2 && nvert_e == 3); + + // Allocate memory + Resize_Coords(nnode, ndim); // coordinates in 2D [nnode][ndim] + Resize_Connectivity(nelem, nvert_e); // connectivity matrix [nelem][nvert] + + // Read ccordinates + auto &xc = GetCoords(); + for (int k = 0; k < nnode * ndim; ++k) + { + ifs >> xc[k]; + } + + // Read connectivity + auto &ia = GetConnectivity(); + for (int k = 0; k < nelem * nvert_e; ++k) + { + ifs >> ia[k]; + ia[k] -= OFFSET; // Matlab to C indexing + } + + // additional read of boundary information (only start/end point) + int nbedges; + ifs >> nbedges; + + bedges.resize(nbedges * 2); + for (int k = 0; k < nbedges * 2; ++k) + { + ifs >> bedges[k]; + bedges[k] -= OFFSET; // Matlab to C indexing + } + + return; +} + +// binary +//{ +//ifstream ifs(fname, ios_base::in | ios_base::binary); +//if(!(ifs.is_open() && ifs.good())) +//{ +//cerr << "ReadBinMatrix: Error cannot open file " << file << endl; +//assert(ifs.is_open()); +//} +//cout << "ReadBinMatrix: file opened" << file << endl; + + +//} + +// binaryIO.cpp +//void read_binMatrix(const string& file, vector &cnt, vector &col, vector &ele) +//{ + +//ifstream ifs(file, ios_base::in | ios_base::binary); + +//if(!(ifs.is_open() && ifs.good())) +//{ +//cerr << "ReadBinMatrix: Error cannot open file " << file << endl; +//assert(ifs.is_open()); +//} +//cout << "ReadBinMatrix: Opened file " << file << endl; + +//int _size; + +//ifs.read(reinterpret_cast(&_size), sizeof(int)); // old: ifs.read((char*)&_size, sizeof(int)); +//cnt.resize(_size); +//cout << "ReadBinMatrix: cnt size: " << _size << endl; + +//ifs.read((char*)&_size, sizeof(int)); +//col.resize(_size); +//cout << "ReadBinMatrix: col size: " << _size << endl; + +//ifs.read((char*)&_size, sizeof(int)); +//ele.resize(_size); +//cout << "ReadBinMatrix: ele size: " << _size << endl; + + +//ifs.read((char*)cnt.data(), cnt.size() * sizeof(int)); +//ifs.read((char*)col.data(), col.size() * sizeof(int)); +//ifs.read((char*)ele.data(), ele.size() * sizeof(double)); + +//ifs.close(); +//cout << "ReadBinMatrix: Finished reading matrix.." << endl; + +//} + + +std::vector Mesh_2d_3_matlab::Index_DirichletNodes() const +{ + vector idx(bedges); // copy + + sort(idx.begin(), idx.end()); // sort + idx.erase( unique(idx.begin(), idx.end()), idx.end() ); // remove duplicate data + + return idx; +} + + + + + + + + + + + + + + + + + + + diff --git a/ex3/ex3/geom.h b/ex3/ex3/geom.h new file mode 100644 index 0000000..14328fa --- /dev/null +++ b/ex3/ex3/geom.h @@ -0,0 +1,381 @@ +#ifndef GEOM_FILE +#define GEOM_FILE +#include +#include // function; C++11 +#include +#include + +/** + * Basis class for finite element meshes. + */ +class Mesh +{ +public: + /** + * Constructor initializing the members with default values. + * + * @param[in] ndim space dimensions (dimension for coordinates) + * @param[in] nvert_e number of vertices per element (dimension for connectivity) + * @param[in] ndof_e degrees of freedom per element (= @p nvert_e for linear elements) + */ + explicit Mesh(int ndim, int nvert_e = 0, int ndof_e = 0); + + /** + * Destructor. + * + * See clang warning on + * weak-vtables. + */ + virtual ~Mesh(); + + /** + * Number of finite elements in (sub)domain. + * @return number of elements. + */ + int Nelems() const + { + return _nelem; + } + + /** + * Global number of vertices for each finite element. + * @return number of vertices per element. + */ + int NverticesElements() const + { + return _nvert_e; + } + + /** + * Global number of degrees of freedom (dof) for each finite element. + * @return degrees of freedom per element. + */ + int NdofsElement() const + { + return _ndof_e; + } + + /** + * Number of vertices in mesh. + * @return number of vertices. + */ + int Nnodes() const + { + return _nnode; + } + + /** + * Space dimension. + * @return number of dimensions. + */ + int Ndims() const + { + return _ndim; + } + + /** + * (Re-)Allocates memory for the element connectivity and redefines the appropriate dimensions. + * + * @param[in] nelem number of elements + * @param[in] nvert_e number of vertices per element + */ + void Resize_Connectivity(int nelem, int nvert_e) + { + SetNelem(nelem); // number of elements + SetNverticesElement(nvert_e); // vertices per element + _ia.resize(nelem * nvert_e); + } + + /** + * Read connectivity information (g1,g2,g3)_i. + * @return convectivity vector [nelems*ndofs]. + */ + const std::vector &GetConnectivity() const + { + return _ia; + } + + /** + * Access/Change connectivity information (g1,g2,g3)_i. + * @return convectivity vector [nelems*ndofs]. + */ + std::vector &GetConnectivity() + { + return _ia; + } + + /** + * (Re-)Allocates memory for the element connectivity and redefines the appropriate dimensions. + * + * @param[in] nnodes number of nodes + * @param[in] ndim space dimension + */ + void Resize_Coords(int nnodes, int ndim) + { + SetNnode(nnodes); // number of nodes + SetNdim(ndim); // space dimension + _xc.resize(nnodes * ndim); + } + + /** + * Read coordinates of vertices (x,y)_i. + * @return coordinates vector [nnodes*2]. + */ + const std::vector &GetCoords() const + { + return _xc; + } + + /** + * Access/Change coordinates of vertices (x,y)_i. + * @return coordinates vector [nnodes*2]. + */ + std::vector &GetCoords() + { + return _xc; + } + + /** + * Calculate values in vector @p v via function @p func(x,y) + * @param[in] v vector + * @param[in] func function of (x,y) returning a double value. + */ + void SetValues(std::vector &v, const std::function &func) const; + + /** + * Prints the information for a finite element mesh + */ + void Debug() const; + + /** + * Determines the indices of those vertices with Dirichlet boundary conditions + * @return index vector. + */ + virtual std::vector Index_DirichletNodes() const = 0; + + /** + * Write vector @p v toghether with its mesh information to an ASCii file @p fname. + * + * The data are written in C-style. + * + * @param[in] fname file name + * @param[in] v vector + */ + void Write_ascii_matlab(std::string const &fname, std::vector const &v) const; + + /** + * Visualize @p v together with its mesh information via matlab or octave. + * + * Comment/uncomment those code lines in method Mesh:Visualize (geom.cpp) + * that are supported on your system. + * + * @param[in] v vector + * + * @warning matlab files ascii_read_meshvector.m visualize_results.m + * must be in the executing directory. + */ + void Visualize(std::vector const &v) const; + + +protected: + void SetNelem(int nelem) + { + _nelem = nelem; + } + + void SetNverticesElement(int nvert) + { + _nvert_e = nvert; + } + + void SetNdofsElement(int ndof) + { + _ndof_e = ndof; + } + + void SetNnode(int nnode) + { + _nnode = nnode; + } + + void SetNdim(int ndim) + { + _ndim = ndim; + } + +private: + int _nelem; //!< number elements + int _nvert_e; //!< number of vertices per element + int _ndof_e; //!< degrees of freedom (d.o.f.) per element + int _nnode; //!< number nodes/vertices + int _ndim; //!< space dimension of the problem (1, 2, or 3) + std::vector _ia; //!< element connectivity + std::vector _xc; //!< coordinates +}; + +/** + * 2D finite element mesh of the square consiting of linear triangular elements. + */ +class Mesh_2d_3_square: public Mesh +{ +public: + /** + * Generates the f.e. mesh for the unit square. + * + * @param[in] nx number of discretization intervals in x-direction + * @param[in] ny number of discretization intervals in y-direction + * @param[in] myid my MPI-rank / subdomain + * @param[in] procx number of ranks/subdomains in x-direction + * @param[in] procy number of processes in y-direction + */ + Mesh_2d_3_square(int nx, int ny, int myid = 0, int procx = 1, int procy = 1); + + /** + * Destructor + */ + ~Mesh_2d_3_square() override + {} + + /** + * Set solution vector based on a tensor product grid in the rectangle. + * @param[in] u solution vector + */ + void SetU(std::vector &u) const; + + /** + * Set right hand side (rhs) vector on a tensor product grid in the rectangle. + * @param[in] f rhs vector + */ + void SetF(std::vector &f) const; + + /** + * Determines the indices of those vertices with Dirichlet boundary conditions + * @return index vector. + */ + std::vector Index_DirichletNodes() const override; + + /** + * Stores the values of vector @p u of (sub)domain into a file @p name for further processing in gnuplot. + * The file stores rowise the x- and y- coordinates together with the value from @p u . + * The domain [@p xl, @p xr] x [@p yb, @p yt] is discretized into @p nx x @p ny intervals. + * + * @param[in] name basename of file name (file name will be extended by the rank number) + * @param[in] u local vector + * + * @warning Assumes tensor product grid in unit square; rowise numbered + * (as generated in class constructor). + * The output is provided for tensor product grid visualization + * ( similar to Matlab-surf() ). + * + * @see Mesh_2d_3_square + */ + void SaveVectorP(std::string const &name, std::vector const &u) const; + + // here will still need to implement in the class + // GetBound(), AddBound() + // or better a generalized way with indices and their appropriate ranks for MPI communication + +private: + /** + * Determines the coordinates of the dicretization nodes of the domain [@p xl, @p xr] x [@p yb, @p yt] + * which is discretized into @p nx x @p ny intervals. + * + * @param[in] ny number of discretization intervals in y-direction + * @param[in] xl x-coordinate of left boundary + * @param[in] xr x-coordinate of right boundary + * @param[in] yb y-coordinate of lower boundary + * @param[in] yt y-coordinate of upper boundary + * @param[out] xc coordinate vector of length 2n with x(2*k,2*k+1) as coodinates of node k + */ + + void GetCoordsInRectangle(int nx, int ny, double xl, double xr, double yb, double yt, + double xc[]); + /** + * Determines the element connectivity of linear triangular elements of a FEM discretization + * of a rectangle using @p nx x @p ny equidistant intervals for discretization. + * @param[in] nx number of discretization intervals in x-direction + * @param[in] ny number of discretization intervals in y-direction + * @param[out] ia element connectivity matrix with ia(3*s,3*s+1,3*s+2) as node numbers od element s + */ + void GetConnectivityInRectangle(int nx, int ny, int ia[]); + +private: + int _myid; //!< my MPI rank + int _procx; //!< number of MPI ranks in x-direction + int _procy; //!< number of MPI ranks in y-direction + std::array _neigh; //!< MPI ranks of neighbors (negative: no neighbor but b.c.) + int _color; //!< red/black coloring (checker board) of subdomains + + double _xl; //!< x coordinate of lower left corner of square + double _xr; //!< x coordinate of lower right corner of square + double _yb; //!< y coordinate or lower left corner of square + double _yt; //!< y coordinate of upper right corner of square + int _nx; //!< number of intervals in x-direction + int _ny; //!< number of intervals in y-direction +}; + +// #################### still some old code (--> MPI) ############################ +/** + * Copies the values of @p w corresponding to boundary @p ib + * onto vector s. South (ib==1), East (ib==2), North (ib==3), West (ib==4). + * The vector @p s has to be long enough!! + * @param[in] ib my local boundary + * @param[in] nx number of discretization intervals in x-direction + * @param[in] ny number of discretization intervals in y-direction + * @param[in] w vector for all nodes of local discretization + * @param[out] s short vector with values on boundary @p ib +*/ +// GH_NOTE: Absicherung bei s !! +void GetBound(int ib, int nx, int ny, double const w[], double s[]); + + +/** + * Computes @p w := @p w + @p s at the interface/boundary nodes on the + * boundary @p ib . South (ib==1), East (ib==2), North (ib==3), West (ib==4) + * @param[in] ib my local boundary + * @param[in] nx number of discretization intervals in x-direction + * @param[in] ny number of discretization intervals in y-direction + * @param[in,out] w vector for all nodes of local discretization + * @param[in] s short vector with values on boundary @p ib +*/ +void AddBound(int ib, int nx, int ny, double w[], double const s[]); + +// #################### Mesh from Matlab ############################ +/** + * 2D finite element mesh of the square consiting of linear triangular elements. + */ +class Mesh_2d_3_matlab: public Mesh +{ +public: + /** + * Reads mesh data from a binary file. + * + * File format, see ascii_write_mesh.m + * + * @param[in] fname file name + */ + explicit Mesh_2d_3_matlab(std::string const &fname); + + /** + * Determines the indices of those vertices with Dirichlet boundary conditions. + * @return index vector. + * + * @warning All boundary nodes are considered as Dirchlet nodes. + */ + std::vector Index_DirichletNodes() const override; + +private: + /** + * Determines the indices of those vertices with Dirichlet boundary conditions + * @return index vector. + */ + int Nnbedges() const + { + return static_cast(bedges.size()); + } + + std::vector bedges; //!< boundary edges [nbedges][2] storing start/end vertex + +}; + +#endif diff --git a/ex3/ex3/getmatrix.cpp b/ex3/ex3/getmatrix.cpp new file mode 100644 index 0000000..479caa5 --- /dev/null +++ b/ex3/ex3/getmatrix.cpp @@ -0,0 +1,347 @@ +#include "getmatrix.h" +#include "userset.h" + +#include +#include +#include +#include +#include +#include +#include +using namespace std; + + +// general routine for lin. triangular elements + +void CalcElem(int const ial[3], double const xc[], double ske[3][3], double fe[3]) +//void CalcElem(const int* __restrict__ ial, const double* __restrict__ xc, double* __restrict__ ske[3], double* __restrict__ fe) +{ + const int i1 = 2 * ial[0], i2 = 2 * ial[1], i3 = 2 * ial[2]; + const double x13 = xc[i3 + 0] - xc[i1 + 0], y13 = xc[i3 + 1] - xc[i1 + 1], + x21 = xc[i1 + 0] - xc[i2 + 0], y21 = xc[i1 + 1] - xc[i2 + 1], + x32 = xc[i2 + 0] - xc[i3 + 0], y32 = xc[i2 + 1] - xc[i3 + 1]; + const double jac = fabs(x21 * y13 - x13 * y21); + + ske[0][0] = 0.5 / jac * (y32 * y32 + x32 * x32); + ske[0][1] = 0.5 / jac * (y13 * y32 + x13 * x32); + ske[0][2] = 0.5 / jac * (y21 * y32 + x21 * x32); + ske[1][0] = ske[0][1]; + ske[1][1] = 0.5 / jac * (y13 * y13 + x13 * x13); + ske[1][2] = 0.5 / jac * (y21 * y13 + x21 * x13); + ske[2][0] = ske[0][2]; + ske[2][1] = ske[1][2]; + ske[2][2] = 0.5 / jac * (y21 * y21 + x21 * x21); + + const double xm = (xc[i1 + 0] + xc[i2 + 0] + xc[i3 + 0]) / 3.0, + ym = (xc[i1 + 1] + xc[i2 + 1] + xc[i3 + 1]) / 3.0; + //fe[0] = fe[1] = fe[2] = 0.5 * jac * FunctF(xm, ym) / 3.0; + fe[0] = fe[1] = fe[2] = 0.5 * jac * fNice(xm, ym) / 3.0; +} + + +// general routine for lin. triangular elements, +// non-symm. matrix +// node numbering in element: a s c e n d i n g indices !! +// GH: deprecated +void AddElem(int const ial[3], double const ske[3][3], double const fe[3], + int const id[], int const ik[], double sk[], double f[]) +{ + for (int i = 0; i < 3; ++i) + { + const int ii = ial[i], // row ii (global index) + id1 = id[ii], // start and + id2 = id[ii + 1]; // end of row ii in matrix + int ip = id1; + for (int j = 0; j < 3; ++j) // no symmetry assumed + { + const int jj = ial[j]; + bool not_found = true; + do // find entry jj (global index) in row ii + { + not_found = (ik[ip] != jj); + ++ip; + } + while (not_found && ip < id2); + +#ifndef NDEBUG // compiler option -DNDEBUG switches off the check + if (not_found) // no entry found !! + { + cout << "Error in AddElem: (" << ii << "," << jj << ") [" + << ial[0] << "," << ial[1] << "," << ial[2] << "]\n"; + assert(!not_found); + } +#endif + sk[ip - 1] += ske[i][j]; + } + f[ii] += fe[i]; + } +} + + +// ---------------------------------------------------------------------------- + + + + +// #################################################################### + +CRS_Matrix::CRS_Matrix(Mesh const &mesh) + : _mesh(mesh), _nrows(0), _nnz(0), _id(0), _ik(0), _sk(0) +{ + Derive_Matrix_Pattern(); + return; +} + +void CRS_Matrix::Derive_Matrix_Pattern() +{ + int const nelem(_mesh.Nelems()); + int const ndof_e(_mesh.NdofsElement()); + auto const &ia(_mesh.GetConnectivity()); +// Determine the number of matrix rows + _nrows = *max_element(ia.cbegin(), ia.cbegin() + ndof_e * nelem); + ++_nrows; // node numberng: 0 ... nnode-1 + assert(*min_element(ia.cbegin(), ia.cbegin() + ndof_e * nelem) == 0); // numbering starts with 0 ? + +// Collect for each node those nodes it is connected to (multiple entries) +// Detect the neighboring nodes + vector< list > cc(_nrows); // cc[i] is the list of nodes a node i is connected to + for (int i = 0; i < nelem; ++i) + { + int const idx = ndof_e * i; + for (int k = 0; k < ndof_e; ++k) + { + list &cck = cc.at(ia[idx + k]); + cck.insert( cck.end(), ia.cbegin() + idx, ia.cbegin() + idx + ndof_e ); + } + } +// Delete the multiple entries + _nnz = 0; + for (auto &it : cc) + { + it.sort(); + it.unique(); + _nnz += static_cast(it.size()); + // cout << it.size() << " :: "; copy(it->begin(),it->end(), ostream_iterator(cout," ")); cout << endl; + } + +// CSR data allocation + _id.resize(_nrows + 1); // Allocate memory for CSR row pointer + _ik.resize(_nnz); // Allocate memory for CSR column index vector + +// copy CSR data + _id[0] = 0; // begin of first row + for (size_t i = 0; i < cc.size(); ++i) + { + //cout << i << " " << nid.at(i) << endl;; + const list &ci = cc.at(i); + const auto nci = static_cast(ci.size()); + _id[i + 1] = _id[i] + nci; // begin of next line + copy(ci.begin(), ci.end(), _ik.begin() + _id[i] ); + } + + assert(_nnz == _id[_nrows]); + _sk.resize(_nnz); // Allocate memory for CSR column index vector + return; +} + + +void CRS_Matrix::Debug() const +{ +// ID points to first entry of row +// no symmetry assumed + cout << "\nMatrix (nnz = " << _id[_nrows] << ")\n"; + + for (int row = 0; row < _nrows; ++row) + { + cout << "Row " << row << " : "; + int const id1 = _id[row]; + int const id2 = _id[row + 1]; + for (int j = id1; j < id2; ++j) + { + cout.setf(ios::right, ios::adjustfield); + cout << "[" << setw(2) << _ik[j] << "] " << setw(4) << _sk[j] << " "; + } + cout << endl; + } + return; +} + +void CRS_Matrix::CalculateLaplace(vector &f) +{ + assert(_mesh.NdofsElement() == 3); // only for triangular, linear elements + //cout << _nnz << " vs. " << _id[_nrows] << " " << _nrows<< endl; + assert(_nnz == _id[_nrows]); + + for (int k = 0; k < _nrows; ++k) + { + _sk[k] = 0.0; + } + for (int k = 0; k < _nrows; ++k) + { + f[k] = 0.0; + } + + double ske[3][3], fe[3]; + // Loop over all elements + auto const nelem = _mesh.Nelems(); + auto const &ia = _mesh.GetConnectivity(); + auto const &xc = _mesh.GetCoords(); + + for (int i = 0; i < nelem; ++i) + { + CalcElem(ia.data() + 3 * i, xc.data(), ske, fe); + //AddElem(ia.data()+3 * i, ske, fe, _id.data(), _ik.data(), _sk.data(), f.data()); // GH: deprecated + AddElem_3(ia.data() + 3 * i, ske, fe, f); + } + + //Debug(); + + return; +} + +void CRS_Matrix::ApplyDirichletBC(std::vector const &u, std::vector &f) +{ + double const PENALTY = 1e6; + auto const idx = _mesh.Index_DirichletNodes(); + int const nidx = static_cast(idx.size()); + + for (int row = 0; row < nidx; ++row) + { + int const k = idx[row]; + int const id1 = fetch(k, k); // Find diagonal entry of row + assert(id1 >= 0); + _sk[id1] += PENALTY; // matrix weighted scaling feasible + f[k] += PENALTY * u[k]; + } + + return; +} + +void CRS_Matrix::GetDiag(vector &d) const +{ + assert( _nrows == static_cast(d.size()) ); + + for (int row = 0; row < _nrows; ++row) + { + const int ia = fetch(row, row); // Find diagonal entry of row + assert(ia >= 0); + d[row] = _sk[ia]; + } + return; +} + +bool CRS_Matrix::Compare2Old(int nnode, int const id[], int const ik[], double const sk[]) const +{ + bool bn = (nnode == _nrows); // number of rows + if (!bn) + { + cout << "######### Error: " << "number of rows" << endl; + } + + bool bz = (id[nnode] == _nnz); // number of non zero elements + if (!bz) + { + cout << "######### Error: " << "number of non zero elements" << endl; + } + + bool bd = equal(id, id + nnode + 1, _id.cbegin()); // row starts + if (!bd) + { + cout << "######### Error: " << "row starts" << endl; + } + + bool bk = equal(ik, ik + id[nnode], _ik.cbegin()); // column indices + if (!bk) + { + cout << "######### Error: " << "column indices" << endl; + } + + bool bv = equal(sk, sk + id[nnode], _sk.cbegin()); // values + if (!bv) + { + cout << "######### Error: " << "values" << endl; + } + + return bn && bz && bd && bk && bv; +} + + +void CRS_Matrix::Mult(vector &w, vector const &u) const +{ + assert( _nrows == static_cast(w.size()) ); + assert( w.size() == u.size() ); + + for (int row = 0; row < _nrows; ++row) + { + double wi = 0.0; + for (int ij = _id[row]; ij < _id[row + 1]; ++ij) + { + wi += _sk[ij] * u[ _ik[ij] ]; + } + w[row] = wi; + } + return; +} + +void CRS_Matrix::Defect(vector &w, + vector const &f, vector const &u) const +{ + assert( _nrows == static_cast(w.size()) ); + assert( w.size() == u.size() && u.size() == f.size() ); + + for (int row = 0; row < _nrows; ++row) + { + double wi = f[row]; + for (int ij = _id[row]; ij < _id[row + 1]; ++ij) + { + wi -= _sk[ij] * u[ _ik[ij] ]; + } + w[row] = wi; + } + return; +} + +int CRS_Matrix::fetch(int const row, int const col) const +{ + int const id2 = _id[row + 1]; // end and + int ip = _id[row]; // start of recent row (global index) + + while (ip < id2 && _ik[ip] != col) // find index col (global index) + { + ++ip; + } + if (ip >= id2) + { + ip = -1; +#ifndef NDEBUG // compiler option -DNDEBUG switches off the check + cout << "No column " << col << " in row " << row << endl; + assert(ip >= id2); +#endif + } + return ip; +} + + +void CRS_Matrix::AddElem_3(int const ial[3], double const ske[3][3], double const fe[3], vector &f) +{ + for (int i = 0; i < 3; ++i) + { + const int ii = ial[i]; // row ii (global index) + for (int j = 0; j < 3; ++j) // no symmetry assumed + { + const int jj = ial[j]; // column jj (global index) + int ip = fetch(ii, jj); // find column entry jj in row ii +#ifndef NDEBUG // compiler option -DNDEBUG switches off the check + if (ip < 0) // no entry found !! + { + cout << "Error in AddElem: (" << ii << "," << jj << ") [" + << ial[0] << "," << ial[1] << "," << ial[2] << "]\n"; + assert(ip >= 0); + } +#endif + _sk[ip] += ske[i][j]; + } + f[ii] += fe[i]; + } +} + diff --git a/ex3/ex3/getmatrix.h b/ex3/ex3/getmatrix.h new file mode 100644 index 0000000..922606c --- /dev/null +++ b/ex3/ex3/getmatrix.h @@ -0,0 +1,178 @@ +#ifndef GETMATRIX_FILE +#define GETMATRIX_FILE + +#include "geom.h" +#include + +/** + * Calculates the element stiffness matrix @p ske and the element load vector @p fe + * of one triangular element with linear shape functions. + * @param[in] ial node indices of the three element vertices + * @param[in] xc vector of node coordinates with x(2*k,2*k+1) as coodinates of node k + * @param[out] ske element stiffness matrix + * @param[out] fe element load vector + */ +void CalcElem(int const ial[3], double const xc[], double ske[3][3], double fe[3]); + +/** + * Adds the element stiffness matrix @p ske and the element load vector @p fe + * of one triangular element with linear shape functions to the appropriate positions in + * the symmetric stiffness matrix, stored as CSR matrix K(@p sk,@p id, @p ik) + * + * @param[in] ial node indices of the three element vertices + * @param[in] ske element stiffness matrix + * @param[in] fe element load vector + * @param[out] sk vector non-zero entries of CSR matrix + * @param[in] id index vector containing the first entry in a CSR row + * @param[in] ik column index vector of CSR matrix + * @param[out] f distributed local vector storing the right hand side + * + * @warning Algorithm requires indices in connectivity @p ial in ascending order. + * Currently deprecated. +*/ +void AddElem(int const ial[3], double const ske[3][3], double const fe[3], + int const id[], int const ik[], double sk[], double f[]); + + +// ##################################################################### +/** + * Square matrix in CRS format (compressed row storage; also named CSR), + * see an introduction. + */ +class CRS_Matrix +{ + public: + /** + * Intializes the CRS matrix structure from the given discetization in @p mesh. + * + * The sparse matrix pattern is generated but the values are 0. + * + * @param[in] mesh given discretization + * + * @warning A reference to the discretization @p mesh is stored inside this class. + * Therefore, changing @p mesh outside requires also + * to call method @p Derive_Matrix_Pattern explicitely. + * + * @see Derive_Matrix_Pattern + */ + explicit CRS_Matrix(Mesh const & mesh); + + /** + * Destructor. + */ + ~CRS_Matrix() + {} + + /** + * Generates the sparse matrix pattern and overwrites the existing pattern. + * + * The sparse matrix pattern is generated but the values are 0. + */ + void Derive_Matrix_Pattern(); + + /** + * Calculates the entries of f.e. stiffness matrix and load/rhs vector @p f for the Laplace operator in 2D. + * No memory is allocated. + * + * @param[in,out] f (preallocated) rhs/load vector + */ + void CalculateLaplace(std::vector &f); + + /** + * Applies Dirichlet boundary conditions to stiffness matrix and to load vector @p f. + * The penalty method + * is used for incorporating the given values @p u. + * + * @param[in] u (global) vector with Dirichlet data + * @param[in,out] f load vector + */ + void ApplyDirichletBC(std::vector const &u, std::vector &f); + + /** + * Extracts the diagonal elemenst of the sparse matrix. + * + * @param[in,out] d (prellocated) vector of diagonal elements + */ + void GetDiag(std::vector &d) const; + + /** + * Performs the matrix-vector product w := K*u. + * + * @param[in,out] w resulting vector (preallocated) + * @param[in] u vector + */ + void Mult(std::vector &w, std::vector const &u) const; + + /** + * Calculates the defect/residuum w := f - K*u. + * + * @param[in,out] w resulting vector (preallocated) + * @param[in] f load vector + * @param[in] u vector + */ + void Defect(std::vector &w, + std::vector const &f, std::vector const &u) const; + + /** + * Number rows in matrix. + * @return number of rows. + */ + int Nrows() const + {return _nrows;} + + /** + * Show the matrix entries. + */ + void Debug() const; + + /** + * Finds in a CRS matrix the access index for an entry at row @p row and column @p col. + * + * @param[in] row row index + * @param[in] col column index + * @return index for element (@p row, @p col). If no appropriate entry exists then -1 will be returned. + * + * @warning assert() stops the function in case that matrix element (@p row, @p col) doesn't exist. + */ + int fetch(int row, int col) const; + + /** + * Adds the element stiffness matrix @p ske and the element load vector @p fe + * of one triangular element with linear shape functions to the appropriate positions in + * the stiffness matrix, stored as CSR matrix K(@p sk,@p id, @p ik). + * + * @param[in] ial node indices of the three element vertices + * @param[in] ske element stiffness matrix + * @param[in] fe element load vector + * @param[in,out] f distributed local vector storing the right hand side + * + * @warning Algorithm assumes linear triangular elements (ndof_e==3). + */ + void AddElem_3(int const ial[3], double const ske[3][3], double const fe[3], std::vector &f); + + /** + * Compare @p this CRS matrix with an external CRS matrix stored in C-Style. + * + * The method prints statements on differences found. + * + * @param[in] nnode row number of external matrix + * @param[in] id start indices of matrix rows of external matrix + * @param[in] ik column indices of external matrix + * @param[in] sk non-zero values of external matrix + * + * @return true iff all data are identical. + */ + bool Compare2Old(int nnode, int const id[], int const ik[], double const sk[]) const; + + private: + Mesh const & _mesh; //!< reference to discretization + int _nrows; //!< number of rows in matrix + int _nnz; //!< number of non-zero entries + std::vector _id; //!< start indices of matrix rows + std::vector _ik; //!< column indices + std::vector _sk; //!< non-zero values + +}; + + +#endif diff --git a/ex3/ex3/jacsolve.cpp b/ex3/ex3/jacsolve.cpp new file mode 100644 index 0000000..30766d2 --- /dev/null +++ b/ex3/ex3/jacsolve.cpp @@ -0,0 +1,61 @@ +#include "vdop.h" +#include "getmatrix.h" +#include "jacsolve.h" + +#include +#include +#include +#include +using namespace std; + +// ##################################################################### +// const int neigh[], const int color, +// const MPI::Intracomm& icomm, +void JacobiSolve(CRS_Matrix const &SK, vector const &f, vector &u) +{ + const double omega = 1.0; + const int maxiter = 1000; + const double tol = 1e-5, // tolerance + tol2 = tol * tol; // tolerance^2 + + int nrows = SK.Nrows(); // number of rows == number of columns + assert( nrows == static_cast(f.size()) && f.size() == u.size() ); + + cout << endl << " Start Jacobi solver for " << nrows << " d.o.f.s" << endl; + // Choose initial guess + for (int k = 0; k < nrows; ++k) + { + u[k] = 0.0; // u := 0 + } + + vector dd(nrows); // matrix diagonal + vector r(nrows); // residual + vector w(nrows); // correction + + SK.GetDiag(dd); // dd := diag(K) + ////DebugVector(dd);{int ijk; cin >> ijk;} + + // Initial sweep + SK.Defect(r, f, u); // r := f - K*u + + vddiv(w, r, dd); // w := D^{-1}*r + double sigma0 = dscapr(w, r); // s0 := + + // Iteration sweeps + int iter = 0; + double sigma = sigma0; + while ( sigma > tol2 * sigma0 && maxiter > iter) + { + ++iter; + vdaxpy(u, u, omega, w ); // u := u + om*w + SK.Defect(r, f, u); // r := f - K*u + vddiv(w, r, dd); // w := D^{-1}*r + sigma = dscapr(w, r); // s0 := +// cout << "Iteration " << iter << " : " << sqrt(sigma/sigma0) << endl; + } + cout << "aver. Jacobi rate : " << exp(log(sqrt(sigma / sigma0)) / iter) << " (" << iter << " iter)" << endl; + cout << "final error: " << sqrt(sigma / sigma0) << " (rel) " << sqrt(sigma) << " (abs)\n"; + + return; +} + diff --git a/ex3/ex3/jacsolve.h b/ex3/ex3/jacsolve.h new file mode 100644 index 0000000..dfa3802 --- /dev/null +++ b/ex3/ex3/jacsolve.h @@ -0,0 +1,18 @@ +#ifndef JACSOLVE_FILE +#define JACSOLVE_FILE +#include "getmatrix.h" +#include + + +/** + * Solves linear system of equations K @p u = @p f via the Jacobi iteration. + * We use a distributed symmetric CSR matrix @p SK and initial guess of the + * solution is set to 0. + * @param[in] SK CSR matrix + * @param[in] f distributed local vector storing the right hand side + * @param[out] u accumulated local vector storing the solution. +*/ +void JacobiSolve(CRS_Matrix const &SK, std::vector const &f, std::vector &u); + + +#endif diff --git a/ex3/ex3/main.cpp b/ex3/ex3/main.cpp new file mode 100644 index 0000000..088efa4 --- /dev/null +++ b/ex3/ex3/main.cpp @@ -0,0 +1,101 @@ +#include "benchmarks.h" +#include "benchmark_tests.h" +#include "factorization_solve_tests.h" +#include + +int main() +{ + // ---------------------------------- 1. ---------------------------------- + // results in file "test_system.txt" + + + + // ---------------------------------- 2. ---------------------------------- + // Memory FLOPS Read-write operations + // (A) 2N 2N 2N + // (B) MN + N 2NM 2NM + M + // (C) ML + LM 2LNM 2LNM + MN + // (D) (p+1) + N 3N(p+1) N(2 + 3(p+1)) + + + + // ---------------------------------- 3. ---------------------------------- + // implementation in file "benchmarks.cpp" + + + + // ---------------------------------- 4.& 6. ---------------------------------- + vector> results; + + results.push_back(test_A(250, 50000000, scalar)); + results.push_back(test_A(250, 50000000, Kahan_skalar)); + results.push_back(test_A(250, 50000000, scalar_cBLAS)); + // Timing GFLOPS GiByte/s + // ------------------------------------------ + // scalar 0.039 2.4 19 + // Kahan_skalar 0.037 2.5 20 + // scalar_cBLAS 0.032 2.9 23 + + + results.push_back(test_B(100, 20000, 10000, MatVec)); + results.push_back(test_B(100, 20000, 10000, MatVec_cBLAS)); + // Timing GFLOPS GiByte/s + // ------------------------------------------ + // MatVec 0.1 3.6 29 + // MatVec_cBLAS 0.074 5 40 + + + results.push_back(test_C(25, 500, 1000, 1500, MatMat)); + results.push_back(test_C(25, 500, 1000, 1500, MatMat_cBLAS)); + // Timing GFLOPS GiByte/s + // ------------------------------------------ + // MatMat 0.57 2.5 20 + // MatMat_cBLAS 0.019 75 6e+02 // unrealistic + + + results.push_back(test_D(100, 100, 1000000)); + // Timing GFLOPS GiByte/s + // ------------------------------------------ + // 0.11 2.5 20 + + + cout << endl << "Timing\tGFLOPS\tGiByte/s" << endl; + cout << "------------------------------" << endl; + for (size_t i = 0; i < results.size(); ++i) + cout << results[i][0] << "\t" << results[i][1] << "\t" << results[i][2] << endl; + cout << endl; + + + + // ---------------------------------- 5. ---------------------------------- + // 5.(a) Observation: time to calculate norm is approximately half the time as for the scalar product. + // Reason: only have to access entries of x, so less memory that has to be accessed + // + // 5.(b) Runtime for Kahan_scalar is roughly the same as for the normal scalar product + + + + // ---------------------------------- 6. ---------------------------------- + // see 4. + + + // ---------------------------------- 7. ---------------------------------- + CheckCorrectness(); + // Checked correctness by computing the inverse of A + + CheckDuration(5000); + // The solving time per RHS scales roughly with factor 1/n_rhs + + + + // ---------------------------------- 8. ---------------------------------- + // done seperately + + + + + + + return 0; + +} diff --git a/ex3/ex3/userset.cpp b/ex3/ex3/userset.cpp new file mode 100644 index 0000000..b263b8f --- /dev/null +++ b/ex3/ex3/userset.cpp @@ -0,0 +1,16 @@ +#include "userset.h" +#include + + +double FunctF(double const x, double const y) +{ +// return std::sin(3.14159*1*x)*std::sin(3.14159*1*y); +// return 16.0*1024. ; +// return (double)1.0 ; + return x * x * std::sin(2.5 * 3.14159 * y); +} + +double FunctU(const double /* x */, double const /* y */) +{ + return 1.0 ; +} diff --git a/ex3/ex3/userset.h b/ex3/ex3/userset.h new file mode 100644 index 0000000..a734e1f --- /dev/null +++ b/ex3/ex3/userset.h @@ -0,0 +1,44 @@ +#ifndef USERSET_FILE +#define USERSET_FILE +#include +/** + * User function: f(@p x,@p y) + * @param[in] x x-coordinate of discretization point + * @param[in] y y-coordinate of discretization point + * @return value for right hand side f(@p x,@p y) + */ +double FunctF(double const x, double const y); + +/** + * User function: u(@p x,@p y) + * @param[in] x x-coordinate of discretization point + * @param[in] y y-coordinate of discretization point + * @return value for solution vector u(@p x,@p y) + */ +double FunctU(double const x, double const y); + + +/** + * User function: f(@p x,@p y) = @f$ x^2 \sin(2.5\pi y)@f$. + * @param[in] x x-coordinate of discretization point + * @param[in] y y-coordinate of discretization point + * @return value f(@p x,@p y) + */ +inline double fNice(double const x, double const y) +{ + return x * x * std::sin(2.5 * 3.14159 * y); +} + +/** + * User function: f(@p x,@p y) = 0$. + * @param[in] x x-coordinate of discretization point + * @param[in] y y-coordinate of discretization point + * @return value 0 + */ +inline double f_zero(double const x, double const y) +//double f_zero(double const /*x*/, double const /*y*/) +{ + return 0.0 + 0.0*(x+y); +} + +#endif diff --git a/ex3/ex3/vdop.cpp b/ex3/ex3/vdop.cpp new file mode 100644 index 0000000..55fac1a --- /dev/null +++ b/ex3/ex3/vdop.cpp @@ -0,0 +1,84 @@ +#include "vdop.h" +#include // assert() +#include +#include +#include +using namespace std; + + +void vddiv(vector &x, vector const &y, + vector const &z) +{ + assert( x.size() == y.size() && y.size() == z.size() ); + size_t n = x.size(); + + for (size_t k = 0; k < n; ++k) + { + x[k] = y[k] / z[k]; + } + return; +} + +//****************************************************************************** + +void vdaxpy(std::vector &x, std::vector const &y, + double alpha, std::vector const &z ) +{ + assert( x.size() == y.size() && y.size() == z.size() ); + size_t n = x.size(); + + for (size_t k = 0; k < n; ++k) + { + x[k] = y[k] + alpha * z[k]; + } + return; +} +//****************************************************************************** + +double dscapr(std::vector const &x, std::vector const &y) +{ + assert( x.size() == y.size()); + size_t n = x.size(); + + double s = 0.0; + for (size_t k = 0; k < n; ++k) + { + s += x[k] * y[k]; + } + + return s; +} + +//****************************************************************************** +void DebugVector(vector const &v) +{ + cout << "\nVector (nnode = " << v.size() << ")\n"; + for (size_t j = 0; j < v.size(); ++j) + { + cout.setf(ios::right, ios::adjustfield); + cout << v[j] << " "; + } + cout << endl; + + return; +} +//****************************************************************************** +bool CompareVectors(std::vector const &x, int const n, double const y[], double const eps) +{ + bool bn = (static_cast(x.size()) == n); + if (!bn) + { + cout << "######### Error: " << "number of elements" << endl; + } + //bool bv = equal(x.cbegin(),x.cend(),y); + bool bv = equal(x.cbegin(), x.cend(), y, + [eps](double a, double b) -> bool + { return std::abs(a - b) < eps * (1.0 + 0.5 * (std::abs(a) + std::abs(a))); } + ); + if (!bv) + { + assert(static_cast(x.size()) == n); + cout << "######### Error: " << "values" << endl; + } + return bn && bv; +} diff --git a/ex3/ex3/vdop.h b/ex3/ex3/vdop.h new file mode 100644 index 0000000..b2d0adb --- /dev/null +++ b/ex3/ex3/vdop.h @@ -0,0 +1,58 @@ +#ifndef VDOP_FILE +#define VDOP_FILE +#include + +/** @brief Element-wise vector divison x_k = y_k/z_k. + * + * @param[out] x target vector + * @param[in] y source vector + * @param[in] z source vector + * + */ +void vddiv(std::vector & x, std::vector const& y, + std::vector const& z); + +/** @brief Element-wise daxpy operation x(k) = y(k) + alpha*z(k). + * + * @param[out] x target vector + * @param[in] y source vector + * @param[in] alpha scalar + * @param[in] z source vector + * + */ +void vdaxpy(std::vector & x, std::vector const& y, + double alpha, std::vector const& z ); + + +/** @brief Calculates the Euclidian inner product of two vectors. + * + * @param[in] x vector + * @param[in] y vector + * @return Euclidian inner product @f$\langle x,y \rangle@f$ + * + */ +double dscapr(std::vector const& x, std::vector const& y); + + +/** + * Print entries of a vector. + * @param[in] v vector values +*/ +void DebugVector(std::vector const &v); + +/** @brief Compares an STL vector with POD vector. + * + * The accuracy criteria @f$ |x_k-y_k| < \varepsilon \left({1+0.5(|x_k|+|y_k|)}\right) @f$ + * follows the book by + * Stoyan/Baran, p.8. + * + * @param[in] x STL vector + * @param[in] n length of POD vector + * @param[in] y POD vector + * @param[in] eps relative accuracy criteria (default := 0.0). + * @return true iff pairwise vector elements are relatively close to each other. + * + */ +bool CompareVectors(std::vector const& x, int n, double const y[], double const eps=0.0); + +#endif diff --git a/ex4/ex_4A.py b/ex4/ex_4A.py new file mode 100644 index 0000000..e8dd84e --- /dev/null +++ b/ex4/ex_4A.py @@ -0,0 +1,76 @@ +import numpy as np +import matplotlib.pyplot as plt + +np.set_printoptions(precision=2) + + +N = 10 # number of elements +a = 1 +alpha = 1 +g_b = 1 +f_const = 1 + +x = np.linspace(0, 1, N + 1) + + +A = np.zeros((N + 1, N + 1)) +f_vec = np.zeros(N + 1) + +for i in range(1, N + 1): + h = x[i] - x[i - 1] + + + a_11 = 1./h + a*h/3. + a_12 = -1./h + a*h/6. + a_21 = -1./h + a*h/6. + a_22 = 1./h + a*h/3 + + A[i - 1, i - 1] += a_11 + A[i - 1, i] += a_12 + A[i, i - 1] += a_21 + A[i, i] += a_22 + + + f_vec[i] = f_const*h + +print("A =\n", A) + +# take Neumann data into account +A[N, N] += alpha +f_vec[N] += alpha*g_b + + +# take Dirichlet data into account +u_g = np.zeros(N + 1) +u_g[0] = 0 +print("u_g =\n", u_g) + +# remove first row of A +A_g = A[1:N+1, :] +#print("A_g =\n", A_g) + +# remove first row of f_vec +f_g = f_vec[1:N+1] + +# assemble RHS with dirichlet data +f_g -= A_g.dot(u_g) +#print(f_g) + +# matrix for the inner nodes (excluding nodes with dirichlet bcs) +A_0 = A[1:N+1, 1:N+1] +#print(A_0) + +# solve for u_0 (free dofs) +u_0 = np.linalg.solve(A_0, f_g) + +# assemble "u = u_0 + u_g" +u = np.concatenate([[0], u_0]) + + +print("u =\n", u) + +plt.plot(x, u, '-') +plt.xlabel('x') +plt.ylabel('u_h(x)') +plt.grid() +plt.show() \ No newline at end of file diff --git a/ex4/ex_4B.py b/ex4/ex_4B.py new file mode 100644 index 0000000..cd58310 --- /dev/null +++ b/ex4/ex_4B.py @@ -0,0 +1,83 @@ +import numpy as np +import matplotlib.pyplot as plt + +np.set_printoptions(precision=2) + + + +N = 2 # number of elements +split = np.sqrt(2)/2 +#split = 0.5 + + +N_lower = round(N*split) # number of elements in (0, split) +print(N_lower, "elements below sqrt(2)/2") +N_upper = N - N_lower # number of elements in (split, 1) +print(N_upper, "elements above sqrt(2)/2") + +assert(N == N_lower + N_upper) + + + +x_lower = np.linspace(0, split, N_lower + 1) +x_upper = np.linspace(split, 1, N_upper + 1) +x = np.concatenate([x_lower, x_upper[1:]]) +print(x) + + +A = np.zeros((N + 1, N + 1)) + +for i in range(1, N + 1): + h = x[i] - x[i - 1] + + lam = 1 + if(x[i] > split): + lam = 10 + + + a_11 = lam/h + a_12 = -lam/h + a_21 = -lam/h + a_22 = lam/h + + A[i - 1, i - 1] += a_11 + A[i - 1, i] += a_12 + A[i, i - 1] += a_21 + A[i, i] += a_22 + +print("A =\n", A) + + + +# take dirichlet data into account +u_g = np.zeros(N + 1) +u_g[0] = 0 +u_g[N] = 1 +print("u_g =\n", u_g) + +# remove first and last row of A +A_g = A[1:N, :] +#print("A_g =\n", A_g) + +# assemble RHS with dirichlet data +f = -A_g.dot(u_g) +#print(f) + +# matrix for the inner nodes (excluding nodes with dirichlet bcs) +A_0 = A[1:N, 1:N] +#print(A_0) + +# solve for u_0 (free dofs) +u_0 = np.linalg.solve(A_0, f) + +# assemble "u = u_0 + u_g" +u = np.concatenate([[0], u_0, [1]]) + + +print("u =\n", u) + +plt.plot(x, u, '-') +plt.xlabel('x') +plt.ylabel('u_h(x)') +plt.grid() +plt.show() \ No newline at end of file diff --git a/ex4/ex_4C.py b/ex4/ex_4C.py new file mode 100644 index 0000000..5c8184e --- /dev/null +++ b/ex4/ex_4C.py @@ -0,0 +1,76 @@ +import numpy as np +import matplotlib.pyplot as plt + +np.set_printoptions(precision=2) + + +p = 70 +N_vec = [10, 20, 30, 40, 70] +for N in N_vec: + + x = np.linspace(0, 1, N + 1) + + A = np.zeros((N + 1, N + 1)) + + for i in range(1, N + 1): + h = x[i] - x[i - 1] + + + a_11 = 1./h - p/2. + a_12 = -1./h + p/2. + a_21 = -1./h - p/2. + a_22 = 1./h + p/2. + + A[i - 1, i - 1] += a_11 + A[i - 1, i] += a_12 + A[i, i - 1] += a_21 + A[i, i] += a_22 + + print("A =\n", A) + + + + # take dirichlet data into account + u_g = np.zeros(N + 1) + u_g[0] = 0 + u_g[N] = 1 + print("u_g =\n", u_g) + + # remove first and last row of A + A_g = A[1:N, :] + #print("A_g =\n", A_g) + + # assemble RHS with dirichlet data + f = -A_g.dot(u_g) + #print(f) + + # matrix for the inner nodes (excluding nodes with dirichlet bcs) + A_0 = A[1:N, 1:N] + #print(A_0) + + # solve for u_0 (free dofs) + u_0 = np.linalg.solve(A_0, f) + + # assemble "u = u_0 + u_g" + u = np.concatenate([[0], u_0, [1]]) + + + print("u =\n", u) + + plt.plot(x, u, '-') + + +# plotting the exact solution +plt.plot(x, (np.exp(p*x) - 1.)/(np.exp(p) - 1.)) + +plt.xlabel('x') +plt.ylabel('u_h(x)') +plt.legend(N_vec + ['exact']) +plt.title("Comparing discrete solution for increasing number of elements") +plt.grid() +plt.show() + + + + + diff --git a/ex4/ex_4_results.pdf b/ex4/ex_4_results.pdf new file mode 100644 index 0000000000000000000000000000000000000000..2018312922583003cc9bc332a3c32bf1aaacf578 GIT binary patch literal 258144 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
-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ⅅ#7Qq_{i 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 OCDHZ>F&$6D#H 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 HcjE#8&aILi literal 0 HcmV?d00001 diff --git a/ex5/CLANG_default.mk b/ex5/CLANG_default.mk new file mode 100644 index 0000000..d27bbe6 --- /dev/null +++ b/ex5/CLANG_default.mk @@ -0,0 +1,131 @@ +# Basic Defintions for using GNU-compiler suite sequentially +# requires setting of COMPILER=CLANG_ +# https://llvm.org/docs/CompileCudaWithLLVM.html +# https://llvm.org/docs/NVPTXUsage.html + +#CLANGPATH=//usr/lib/llvm-10/bin/ +CC = ${CLANGPATH}clang +CXX = ${CLANGPATH}clang++ +#CXX = ${CLANGPATH}clang++ -lomptarget -fopenmp-targets=nvptx64-nvidia-cuda --cuda-path=/opt/pgi/linux86-64/2017/cuda/8.0 +#F77 = gfortran +LINKER = ${CXX} + +#http://clang.llvm.org/docs/UsersManual.html#options-to-control-error-and-warning-messages +WARNINGS += -pedantic -Weverything -Wdocumentation -Wconversion -Wshadow -Wfloat-conversion +WARNINGS += -Wno-c++98-compat -Wno-sign-conversion -Wno-date-time -Wno-shorten-64-to-32 -Wno-padded -ferror-limit=1 +WARNINGS += -Wno-unsafe-buffer-usage +#-fsyntax-only -Wdocumentation -Wconversion -Wshadow -Wfloat-conversion -pedantic + +CXXFLAGS += -O3 -std=c++17 -ferror-limit=1 ${WARNINGS} +# don't use -Ofast +# -ftrapv +LINKFLAGS += -O3 + +# different libraries in Ubuntu or manajaró +ifndef UBUNTU +UBUNTU=1 +endif + +# BLAS, LAPACK +LINKFLAGS += -llapack -lblas +# -lopenblas +ifeq ($(UBUNTU),1) +# ubuntu +else +# on archlinux +LINKFLAGS += -lcblas +endif + +# interprocedural optimization +CXXFLAGS += -flto +LINKFLAGS += -flto + +#sudo apt install libomp-dev +# OpenMP +CXXFLAGS += -fopenmp +LINKFLAGS += -fopenmp + +# very good check +# http://clang.llvm.org/extra/clang-tidy/ +# good check, see: http://llvm.org/docs/CodingStandards.html#include-style +SWITCH_OFF=,-readability-magic-numbers,-readability-redundant-control-flow,-readability-redundant-member-init +SWITCH_OFF+=,-readability-redundant-member-init,-readability-isolate-declaration +#READABILITY=,readability*${SWITCH_OFF} +#TIDYFLAGS = -checks=llvm-*,-llvm-header-guard -header-filter=.* -enable-check-profile -extra-arg="-std=c++17" -extra-arg="-fopenmp" +TIDYFLAGS = -checks=llvm-*,-llvm-header-guard${READABILITY} -header-filter=.* -enable-check-profile -extra-arg="-std=c++17" -extra-arg="-fopenmp" +#TIDYFLAGS += -checks='modernize* +# ??? +#TIDYFLAGS = -checks='cert*' -header-filter=.* +# MPI checks ?? +#TIDYFLAGS = -checks='mpi*' +# ?? +#TIDYFLAGS = -checks='performance*' -header-filter=.* +#TIDYFLAGS = -checks='portability-*' -header-filter=.* +#TIDYFLAGS = -checks='readability-*' -header-filter=.* + +default: ${PROGRAM} + +${PROGRAM}: ${OBJECTS} + $(LINKER) $^ ${LINKFLAGS} -o $@ + +clean: + @rm -f ${PROGRAM} ${OBJECTS} + +clean_all:: clean + @rm -f *_ *~ *.bak *.log *.out *.tar + +codecheck: tidy_check +tidy_check: + clang-tidy ${SOURCES} ${TIDYFLAGS} -- ${SOURCES} +# see also http://clang-developers.42468.n3.nabble.com/Error-while-trying-to-load-a-compilation-database-td4049722.html + +run: clean ${PROGRAM} +# time ./${PROGRAM} ${PARAMS} + ./${PROGRAM} ${PARAMS} + +# tar the current directory +MY_DIR = `basename ${PWD}` +tar: clean_all + @echo "Tar the directory: " ${MY_DIR} + @cd .. ;\ + tar cf ${MY_DIR}.tar ${MY_DIR} *default.mk ;\ + cd ${MY_DIR} +# tar cf `basename ${PWD}`.tar * + +doc: + doxygen Doxyfile + +######################################################################### + +.cpp.o: + $(CXX) -c $(CXXFLAGS) -o $@ $< + +.c.o: + $(CC) -c $(CFLAGS) -o $@ $< + +.f.o: + $(F77) -c $(FFLAGS) -o $@ $< + +################################################################################################## +# some tools +# Cache behaviour (CXXFLAGS += -g tracks down to source lines; no -pg in linkflags) +cache: ${PROGRAM} + valgrind --tool=callgrind --simulate-cache=yes ./$^ ${PARAMS} +# kcachegrind callgrind.out. & + kcachegrind `ls -1tr callgrind.out.* |tail -1` + +# Check for wrong memory accesses, memory leaks, ... +# use smaller data sets +mem: ${PROGRAM} + valgrind -v --leak-check=yes --tool=memcheck --undef-value-errors=yes --track-origins=yes --log-file=$^.addr.out --show-reachable=yes ./$^ ${PARAMS} + +# Simple run time profiling of your code +# CXXFLAGS += -g -pg +# LINKFLAGS += -pg +prof: ${PROGRAM} + perf record ./$^ ${PARAMS} + perf report +# gprof -b ./$^ > gp.out +# kprof -f gp.out -p gprof & + +codecheck: tidy_check diff --git a/ex5/GCCMKL_default.mk b/ex5/GCCMKL_default.mk new file mode 100644 index 0000000..e16d98f --- /dev/null +++ b/ex5/GCCMKL_default.mk @@ -0,0 +1,212 @@ +# Basic Defintions for using GNU-compiler suite with OpenMP und MKL +# requires setting of COMPILER=GCCMKL_ + +# install MKL in manjaro +# https://linux-packages.com/manjaro-linux/package/intel-mkl +# > sudo pacman -Sy +# > sudo pacman -S intel-mkl + +ifeq ($(ONEAPI),1) +MKL_INCLUDE=/opt/intel/oneapi/mkl/2024.0/include +MKL_LIB=/opt/intel/oneapi/2024.0/lib +export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/opt/intel/oneapi/2024.0/lib +else +MKL_INCLUDE=/usr/include/mkl +MKL_LIB=/usr/lib/x86_64-linux-gnu/mkl +endif + +CC = gcc +CXX = g++ +F77 = gfortran +LINKER = ${CXX} + +WARNINGS = -Wall -pedantic -Wextra -Weffc++ -Woverloaded-virtual -Wfloat-equal -Wshadow \ + -Wredundant-decls -Winline -fmax-errors=1 +# -Wunreachable-code +CXXFLAGS += -ffast-math -O3 -march=native -std=c++17 ${WARNINGS} +#CXXFLAGS += -Ofast -funroll-all-loops -std=c++17 ${WARNINGS} +#-msse3 +# -ftree-vectorizer-verbose=2 -DNDEBUG +# -ftree-vectorizer-verbose=5 +# -ftree-vectorize -fdump-tree-vect-blocks=foo.dump -fdump-tree-pre=stderr + +# CFLAGS = -ffast-math -O3 -DNDEBUG -msse3 -fopenmp -fdump-tree-vect-details +# CFLAGS = -ffast-math -O3 -funroll-loops -DNDEBUG -msse3 -fopenmp -ftree-vectorizer-verbose=2 +# #CFLAGS = -ffast-math -O3 -DNDEBUG -msse3 -fopenmp +# FFLAGS = -ffast-math -O3 -DNDEBUG -msse3 -fopenmp +# LFLAGS = -ffast-math -O3 -DNDEBUG -msse3 -fopenmp +LINKFLAGS += -O3 + +#architecture +CPU = -march=znver2 +#CPU = -march=core-avx2 +CXXFLAGS += ${CPU} +LINKFLAGS += ${CPU} + +# MKL +#CXXFLAGS += -I/usr/include/mkl -DUSE_MKL -Wno-redundant-decls +CXXFLAGS += -I${MKL_INCLUDE} -DUSE_MKL -Wno-redundant-decls +#LINKFLAGS += -lmkl_intel_lp64 -lmkl_tbb_thread -ltbb -lmkl_core +#LINKFLAGS += -lmkl_intel_lp64 -lmkl_gnu_thread -lmkl_core -L/usr/lib/x86_64-linux-gnu/mkl +LINKFLAGS += -L${MKL_LIB} -lmkl_intel_lp64 -lmkl_gnu_thread -lmkl_core +#LINKFLAGS += -lmkl_intel_lp64 -lmkl_sequential -lmkl_core + +# workaround for MKL slow down on AMD hardware +# https://danieldk.eu/Posts/2020-08-31-MKL-Zen.html +default: run +libfakeintel.so: + gcc -shared -fPIC -o libfakeintel.so fakeintel.c + echo "call: export LD_PRELOAD=./libfakeintel.so " + +# different libraries in Ubuntu or manajaro +#ifndef UBUNTU +#UBUNTU=1 +#endif + +## BLAS, LAPACK +#ifeq ($(UBUNTU),1) +#LINKFLAGS += -llapack -lblas +## -lopenblas +#else +## on archlinux +#LINKFLAGS += -llapack -lopenblas -lcblas +#endif + +# interprocedural optimization +CXXFLAGS += -flto +LINKFLAGS += -flto + +# for debugging purpose (save code) +# -fsanitize=leak # only one out the three can be used +# -fsanitize=address +# -fsanitize=thread +SANITARY = -fsanitize=address -fsanitize=undefined -fsanitize=null -fsanitize=return \ + -fsanitize=bounds -fsanitize=alignment -fsanitize=float-divide-by-zero -fsanitize=float-cast-overflow \ + -fsanitize=bool -fsanitize=enum -fsanitize=vptr +#CXXFLAGS += ${SANITARY} +#LINKFLAGS += ${SANITARY} + +# OpenMP +CXXFLAGS += -fopenmp +LINKFLAGS += -fopenmp + +default: ${PROGRAM} + +${PROGRAM}: ${OBJECTS} + $(LINKER) $^ ${LINKFLAGS} -o $@ + +clean: + @rm -f ${PROGRAM} ${OBJECTS} + +clean_all:: clean + -@rm -f *_ *~ *.bak *.log *.out *.tar *.orig *.optrpt + -@rm -rf html + +run: clean ${PROGRAM} libfakeintel.so +#run: ${PROGRAM} +# time ./${PROGRAM} ${PARAMS} + ./${PROGRAM} ${PARAMS} + +# tar the current directory +MY_DIR = `basename ${PWD}` +tar: clean_all + @echo "Tar the directory: " ${MY_DIR} + @cd .. ;\ + tar cf ${MY_DIR}.tar ${MY_DIR} *default.mk ;\ + cd ${MY_DIR} +# tar cf `basename ${PWD}`.tar * +#find . -size +10M > large_files +#--exclude-from ${MY_DIR}/large_files + +zip: clean + @echo "Zip the directory: " ${MY_DIR} + @cd .. ;\ + zip -r ${MY_DIR}.zip ${MY_DIR} *default.mk ;\ + cd ${MY_DIR} + +doc: + doxygen Doxyfile + +######################################################################### +.SUFFIXES: .f90 + +.cpp.o: + $(CXX) -c $(CXXFLAGS) -o $@ $< +# $(CXX) -c $(CXXFLAGS) -o $@ $< 2>&1 | tee -a $<.log +# $(CXX) -c $(CXXFLAGS) -o $@ $< 2>&1 | tee -a $(<:.cpp=.log) + +.c.o: + $(CC) -c $(CFLAGS) -o $@ $< + +.f.o: + $(F77) -c $(FFLAGS) -o $@ $< + +.f90.o: + $(F77) -c $(FFLAGS) -o $@ $< + +################################################################################################## +# some tools +# Cache behaviour (CXXFLAGS += -g tracks down to source lines; no -pg in linkflags) +cache: ${PROGRAM} + valgrind --tool=callgrind --simulate-cache=yes ./$^ ${PARAMS} +# kcachegrind callgrind.out. & + kcachegrind `ls -1tr callgrind.out.* |tail -1` + +# Check for wrong memory accesses, memory leaks, ... +# use smaller data sets +# no "-pg" in compile/link options +mem: ${PROGRAM} + valgrind -v --leak-check=yes --tool=memcheck --undef-value-errors=yes --track-origins=yes --log-file=$^.addr.out --show-reachable=yes ./$^ ${PARAMS} +# Graphical interface +# valkyrie + +# Simple run time profiling of your code +# CXXFLAGS += -g -pg +# LINKFLAGS += -pg +prof: ${PROGRAM} + perf record ./$^ ${PARAMS} + perf report +# gprof -b ./$^ > gp.out +# kprof -f gp.out -p gprof & + +# perf in Ubuntu 20.04: https://www.howtoforge.com/how-to-install-perf-performance-analysis-tool-on-ubuntu-20-04/ +# * install +# * sudo vi /etc/sysctl.conf +# add kernel.perf_event_paranoid = 0 + +#Trace your heap: +#> heaptrack ./main.GCC_ +#> heaptrack_gui heaptrack.main.GCC_..gz +heap: ${PROGRAM} + heaptrack ./$^ ${PARAMS} 11 + heaptrack_gui `ls -1tr heaptrack.$^.* |tail -1` & + +codecheck: $(SOURCES) + cppcheck --enable=all --inconclusive --std=c++17 --suppress=missingIncludeSystem $^ + + +######################################################################## +# get the detailed status of all optimization flags +info: + echo "detailed status of all optimization flags" + $(CXX) --version + $(CXX) -Q $(CXXFLAGS) --help=optimizers + lscpu + inxi -C + lstopo + +# Excellent hardware info +# hardinfo +# Life monitoring of CPU frequency etc. +# sudo i7z + +# Memory consumption +# vmstat -at -SM 3 +# xfce4-taskmanager + + +# https://www.tecmint.com/check-linux-cpu-information/ +#https://www.tecmint.com/monitor-cpu-and-gpu-temperature-in-ubuntu/ + +# Debugging: +# https://wiki.archlinux.org/index.php/Debugging diff --git a/ex5/GCC_SINGLE_default.mk b/ex5/GCC_SINGLE_default.mk new file mode 100644 index 0000000..5ee06e1 --- /dev/null +++ b/ex5/GCC_SINGLE_default.mk @@ -0,0 +1,111 @@ +# Basic Defintions for using GNU-compiler suite sequentially +# requires setting of COMPILER=GCC_ + +CC = gcc +CXX = g++ +F77 = gfortran +LINKER = ${CXX} + +# on mephisto: +#CXXFLAGS += -I/share/apps/atlas/include +#LINKFLAGS += -L/share/apps/atlas/lib -L/usr/lib64/atlas +#LINKFLAGS += -latlas -lcblas +#LINKFLAGS += -lblas +# Der Header muss mit extern "C" versehen werden, damit g++ alles findet. + + +WARNINGS = -Wall -pedantic -Wextra -Weffc++ -Woverloaded-virtual -Wfloat-equal -Wshadow \ + -Wredundant-decls -Winline -fmax-errors=1 +# -Wunreachable-code +#CXXFLAGS += -std=c++17 -ffast-math -O3 -march=native -DNDEBUG ${WARNINGS} +CXXFLAGS += -std=c++17 -ffast-math -O3 -march=native ${WARNINGS} + +# info on vectorization +#VECTORIZE = -ftree-vectorize -fdump-tree-vect-blocks=foo.dump +#-fdump-tree-pre=stderr +VECTORIZE = -ftree-vectorize -fopt-info -ftree-vectorizer-verbose=5 +#CXXFLAGS += ${VECTORIZE} +# -funroll-all-loops -msse3 +#GCC -march=knl -march=broadwell -march=haswell + +# interprocedural optimization +#CXXFLAGS += -flto +LINKFLAGS += -flto + +# for debugging purpose (save code) +# -fsanitize=leak # only one out the trhee can be used +# -fsanitize=address +# -fsanitize=thread +SANITARY = -fsanitize=address -fsanitize=undefined -fsanitize=null -fsanitize=return \ + -fsanitize=bounds -fsanitize=alignment -fsanitize=float-divide-by-zero -fsanitize=float-cast-overflow \ + -fsanitize=bool -fsanitize=enum -fsanitize=vptr +#CXXFLAGS += ${SANITARY} +#LINKFLAGS +=${SANITARY} + +# OpenMP but no OpenMP in Single mode +#CXXFLAGS += -fopenmp +LINKFLAGS += -fopenmp + +default: ${PROGRAM} + +${PROGRAM}: ${OBJECTS} + $(LINKER) $^ ${LINKFLAGS} -o $@ + +clean: + @rm -f ${PROGRAM} ${OBJECTS} + +clean_all:: clean + @rm -f *_ *~ *.bak *.log *.out *.tar *.orig *.optrpt + @rm -rf html + +run: clean ${PROGRAM} +# time ./${PROGRAM} + ./${PROGRAM} + +# tar the current directory +MY_DIR = `basename ${PWD}` +tar: + @echo "Tar the directory: " ${MY_DIR} + @cd .. ;\ + tar cf ${MY_DIR}.tar ${MY_DIR} *default.mk ;\ + cd ${MY_DIR} +# tar cf `basename ${PWD}`.tar * + +doc: + doxygen Doxyfile + +######################################################################### + +.cpp.o: + $(CXX) -c $(CXXFLAGS) -o $@ $< + +.c.o: + $(CC) -c $(CFLAGS) -o $@ $< + +.f.o: + $(F77) -c $(FFLAGS) -o $@ $< + +################################################################################################## +# some tools +# Cache behaviour (CXXFLAGS += -g tracks down to source lines; no -pg in linkflags) +cache: ${PROGRAM} + valgrind --tool=callgrind --simulate-cache=yes ./$^ +# kcachegrind callgrind.out. & + kcachegrind `ls -1tr callgrind.out.* |tail -1` + +# Check for wrong memory accesses, memory leaks, ... +# use smaller data sets +mem: ${PROGRAM} + valgrind -v --leak-check=yes --tool=memcheck --undef-value-errors=yes --track-origins=yes --log-file=$^.addr.out --show-reachable=yes ./$^ + + +thread:${PROGRAM} + valgrind -v --tool=helgrind --log-file=$^.thread.out ./$^ + +# Simple run time profiling of your code +# CXXFLAGS += -g -pg +# LINKFLAGS += -pg +prof: ${PROGRAM} + ./$^ + gprof -b ./$^ > gp.out +# kprof -f gp.out -p gprof & diff --git a/ex5/GCC_default.mk b/ex5/GCC_default.mk new file mode 100644 index 0000000..c2fbde3 --- /dev/null +++ b/ex5/GCC_default.mk @@ -0,0 +1,182 @@ +# Basic Defintions for using GNU-compiler suite sequentially +# requires setting of COMPILER=GCC_ + +CC = gcc +CXX = g++ +F77 = gfortran +LINKER = ${CXX} + +WARNINGS = -Wall -pedantic -Wextra -Weffc++ -Woverloaded-virtual -Wfloat-equal -Wshadow \ + -Wredundant-decls -Winline -fmax-errors=1 +# -Wunreachable-code +CXXFLAGS += -ffast-math -O3 -march=native -std=c++20 ${WARNINGS} +#CXXFLAGS += -Ofast -funroll-all-loops -std=c++17 ${WARNINGS} +#-msse3 +# -ftree-vectorizer-verbose=2 -DNDEBUG +# -ftree-vectorizer-verbose=5 +# -ftree-vectorize -fdump-tree-vect-blocks=foo.dump -fdump-tree-pre=stderr + +# CFLAGS = -ffast-math -O3 -DNDEBUG -msse3 -fopenmp -fdump-tree-vect-details +# CFLAGS = -ffast-math -O3 -funroll-loops -DNDEBUG -msse3 -fopenmp -ftree-vectorizer-verbose=2 +# #CFLAGS = -ffast-math -O3 -DNDEBUG -msse3 -fopenmp +# FFLAGS = -ffast-math -O3 -DNDEBUG -msse3 -fopenmp +# LFLAGS = -ffast-math -O3 -DNDEBUG -msse3 -fopenmp +LINKFLAGS += -O3 + +#architecture +#CPU = -march=znver2 +CXXFLAGS += ${CPU} +LINKFLAGS += ${CPU} -ltbb + +# different libraries in Ubuntu or manajaró +ifndef UBUNTU +UBUNTU=1 +endif + +# BLAS, LAPACK +ifeq ($(UBUNTU),1) +LINKFLAGS += -llapack -lblas +# -lopenblas +else +# on archlinux +LINKFLAGS += -llapack -lopenblas -lcblas +endif + +# interprocedural optimization +CXXFLAGS += -flto +LINKFLAGS += -flto + +# for debugging purpose (save code) +# -fsanitize=leak # only one out the three can be used +# -fsanitize=address +# -fsanitize=thread +SANITARY = -fsanitize=address -fsanitize=undefined -fsanitize=null -fsanitize=return \ + -fsanitize=bounds -fsanitize=alignment -fsanitize=float-divide-by-zero -fsanitize=float-cast-overflow \ + -fsanitize=bool -fsanitize=enum -fsanitize=vptr +#CXXFLAGS += ${SANITARY} +#LINKFLAGS += ${SANITARY} + +# OpenMP +CXXFLAGS += -fopenmp +LINKFLAGS += -fopenmp + +default: ${PROGRAM} + +${PROGRAM}: ${OBJECTS} + $(LINKER) $^ ${LINKFLAGS} -o $@ + +clean: + @rm -f ${PROGRAM} ${OBJECTS} + +clean_all:: clean + -@rm -f *_ *~ *.bak *.log *.out *.tar *.orig *.optrpt + -@rm -rf html + +run: clean ${PROGRAM} +#run: ${PROGRAM} +# time ./${PROGRAM} ${PARAMS} + ./${PROGRAM} ${PARAMS} + +# tar the current directory +MY_DIR = `basename ${PWD}` +tar: clean_all + @echo "Tar the directory: " ${MY_DIR} + @cd .. ;\ + tar cf ${MY_DIR}.tar ${MY_DIR} *default.mk ;\ + cd ${MY_DIR} +# tar cf `basename ${PWD}`.tar * +#find . -size +10M > large_files +#--exclude-from ${MY_DIR}/large_files + +zip: clean + @echo "Zip the directory: " ${MY_DIR} + @cd .. ;\ + zip -r ${MY_DIR}.zip ${MY_DIR} *default.mk ;\ + cd ${MY_DIR} + +doc: + doxygen Doxyfile + +######################################################################### +.SUFFIXES: .f90 + +.cpp.o: + $(CXX) -c $(CXXFLAGS) -o $@ $< +# $(CXX) -c $(CXXFLAGS) -o $@ $< 2>&1 | tee -a $<.log +# $(CXX) -c $(CXXFLAGS) -o $@ $< 2>&1 | tee -a $(<:.cpp=.log) + +.c.o: + $(CC) -c $(CFLAGS) -o $@ $< + +.f.o: + $(F77) -c $(FFLAGS) -o $@ $< + +.f90.o: + $(F77) -c $(FFLAGS) -o $@ $< + +################################################################################################## +# some tools +# Cache behaviour (CXXFLAGS += -g tracks down to source lines; no -pg in linkflags) +cache: ${PROGRAM} + valgrind --tool=callgrind --simulate-cache=yes ./$^ ${PARAMS} +# kcachegrind callgrind.out. & + kcachegrind `ls -1tr callgrind.out.* |tail -1` + +# Check for wrong memory accesses, memory leaks, ... +# use smaller data sets +# no "-pg" in compile/link options +mem: ${PROGRAM} + valgrind -v --leak-check=yes --tool=memcheck --undef-value-errors=yes --track-origins=yes --log-file=$^.addr.out --show-reachable=yes ./$^ ${PARAMS} +# Graphical interface +# valkyrie + +# Simple run time profiling of your code +# CXXFLAGS += -g -pg +# LINKFLAGS += -pg +prof: ${PROGRAM} + perf record ./$^ ${PARAMS} + perf report +# gprof -b ./$^ > gp.out +# kprof -f gp.out -p gprof & + +# perf in Ubuntu 20.04: https://www.howtoforge.com/how-to-install-perf-performance-analysis-tool-on-ubuntu-20-04/ +# * install +# * sudo vi /etc/sysctl.conf +# add kernel.perf_event_paranoid = 0 + +#Trace your heap: +#> heaptrack ./main.GCC_ +#> heaptrack_gui heaptrack.main.GCC_..gz +heap: ${PROGRAM} + heaptrack ./$^ ${PARAMS} 11 + heaptrack_gui `ls -1tr heaptrack.$^.* |tail -1` & + +codecheck: $(SOURCES) + cppcheck --enable=all --inconclusive --std=c++17 -I${CUDA_INC} --suppress=missingIncludeSystem $^ + + +######################################################################## +# get the detailed status of all optimization flags +info: + echo "detailed status of all optimization flags" + $(CXX) --version + $(CXX) -Q $(CXXFLAGS) --help=optimizers + lscpu + inxi -C + lstopo + +# Excellent hardware info +# hardinfo +# Life monitoring of CPU frequency etc. +# sudo i7z + +# Memory consumption +# vmstat -at -SM 3 +# xfce4-taskmanager + + +# https://www.tecmint.com/check-linux-cpu-information/ +#https://www.tecmint.com/monitor-cpu-and-gpu-temperature-in-ubuntu/ + +# Debugging: +# https://wiki.archlinux.org/index.php/Debugging diff --git a/ex5/ICC_default.mk b/ex5/ICC_default.mk new file mode 100644 index 0000000..56c1275 --- /dev/null +++ b/ex5/ICC_default.mk @@ -0,0 +1,151 @@ +# Basic Defintions for using INTEL compiler suite sequentially +# requires setting of COMPILER=ICC_ + +# special on my sony [GH] +#BINDIR = /opt/save.intel/bin/ +# very special on my sony [GH] +# FIND_LIBS = -L /opt/save.intel/composer_xe_2013.1.117/mkl/lib/intel64/libmkl_intel_lp64.so + +#export KMP_AFFINITY=verbose,compact + +CC = ${BINDIR}icc +CXX = ${BINDIR}icpc +F77 = ${BINDIR}ifort +LINKER = ${CXX} + +WARNINGS = -pedantic -Wall -Weffc++ -Woverloaded-virtual -Wfloat-equal -Wshadow -wd2015,2012 + #-Winline -Wunreachable-code -Wredundant-decls +CXXFLAGS += -std=c++17 -O3 -fma -DNDEBUG ${WARNINGS} -mkl +#CXXFLAGS += -std=c++17 -O3 -march=core-avx2 -fma -ftz -fomit-frame-pointer -DNDEBUG ${WARNINGS} -mkl +# -fast # fast inludes also -ipo ! +CXXFLAGS += -fargument-noalias -fargument-noalias-global -ansi-alias +CXXFLAGS += -align -qopt-dynamic-align +#CXXFLAGS += -xCore-AVX2 +#CXXFLAGS += -tp=zen +# -qopt-subscript-in-range +# -vec-threshold0 +# -xCORE-AVX2 +# -axcode COMMON-AVX512 -axcode MIC-AVX512 -axcode CORE-AVX512 -axcode CORE-AVX2 +# -ipo + +# Reports: https://software.intel.com/en-us/articles/getting-the-most-out-of-your-intel-compiler-with-the-new-optimization-reports +#CXXFLAGS += -qopt-report=5 -qopt-report-phase=vec,par + +#CXXFLAGS += -qopt-report=5 -qopt-report-phase=cg +# Redirect report from *.optrpt to stderr +# -qopt-report-file=stderr +# Guided paralellization +# -guide -parallel +# -guide-opts=string -guide-par[=n] -guide-vec[=n] +# -auto-p32 -simd + +# interprocedural optimization +#CXXFLAGS += -ipo +#LINKFLAGS += -ipo + +# annotated Assembler file +ANNOTED = -fsource-asm -S + +# OpenMP +CXXFLAGS += -qopenmp +# -qopt-report-phase=openmp +# -diag-enable=sc-full -diag-file=filename -diag-file-append[=filename] +LINKFLAGS += -qopenmp + +# use MKL by INTEL +# LINKFLAGS += -L${BINDIR}../composer_xe_2013.1.117/mkl/lib/intel64 -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread +LINKFLAGS += -O2 -mkl +# -ipo + + + +default: ${PROGRAM} + +${PROGRAM}: ${OBJECTS} + $(LINKER) $^ ${LINKFLAGS} -o $@ + +clean: + rm -f ${PROGRAM} ${OBJECTS} *.optrpt + +clean_all:: clean + @rm -f *_ *~ *.bak *.log *.out *.tar + +run: clean ${PROGRAM} + ./${PROGRAM} + +# tar the current directory +MY_DIR = `basename ${PWD}` +tar: clean_all + @echo "Tar the directory: " ${MY_DIR} + @cd .. ;\ + tar cf ${MY_DIR}.tar ${MY_DIR} *default.mk ;\ + cd ${MY_DIR} +# tar cf `basename ${PWD}`.tar * + +doc: + doxygen Doxyfile + +######################################################################### + +.cpp.o: + $(CXX) -c $(CXXFLAGS) -o $@ $< + +.c.o: + $(CC) -c $(CFLAGS) -o $@ $< + +.f.o: + $(F77) -c $(FFLAGS) -o $@ $< + +################################################################################################## +# # some tools +# # Cache behaviour (CXXFLAGS += -g tracks down to source lines) +# cache: ${PROGRAM} +# valgrind --tool=callgrind --simulate-cache=yes ./$^ +# # kcachegrind callgrind.out. & +# +# # Check for wrong memory accesses, memory leaks, ... +# # use smaller data sets +# mem: ${PROGRAM} +# valgrind -v --leak-check=yes --tool=memcheck --undef-value-errors=yes --track-origins=yes --log-file=$^.addr.out --show-reachable=yes ./$^ +# +# # Simple run time profiling of your code +# # CXXFLAGS += -g -pg +# # LINKFLAGS += -pg +# prof: ${PROGRAM} +# ./$^ +# gprof -b ./$^ > gp.out +# # kprof -f gp.out -p gprof & +# + + +mem: inspector +prof: amplifier +cache: amplifier + +gap_par_report: + ${CXX} -c -guide -parallel $(SOURCES) 2> gap.txt + +# GUI for performance report +amplifier: ${PROGRAM} + echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope + echo 0 | sudo tee /proc/sys/kernel/perf_event_paranoid + amplxe-gui & + +# GUI for Memory and Thread analyzer (race condition) +inspector: ${PROGRAM} + echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope + #${BINDIR}../inspector_xe_2013/bin64/inspxe-gui & + inspxe-gui & + +advisor: + echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope +# https://software.intel.com/en-us/articles/intel-advisor-2017-update-1-what-s-new + export ADVIXE_EXPERIMENTAL=roofline + advixe-gui & + +icc-info: + icpc -# main.cpp + + + + diff --git a/ex5/ONEAPI_default.mk b/ex5/ONEAPI_default.mk new file mode 100644 index 0000000..c4c79ab --- /dev/null +++ b/ex5/ONEAPI_default.mk @@ -0,0 +1,181 @@ +# Basic Defintions for using INTEL compiler suite sequentially +# requires setting of COMPILER=ONEAPI_ + +# https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/onemkl/link-line-advisor.html +# requires +# source /opt/intel/oneapi/setvars.sh +# on AMD: export MKL_DEBUG_CPU_TYPE=5 + +#BINDIR = /opt/intel/oneapi/compiler/latest/linux/bin/ +#MKL_ROOT = /opt/intel/oneapi/mkl/latest/ +#export KMP_AFFINITY=verbose,compact + +CC = ${BINDIR}icc +CXX = ${BINDIR}dpcpp +F77 = ${BINDIR}ifort +LINKER = ${CXX} + +## Compiler flags +WARNINGS = -Wall -Weffc++ -Woverloaded-virtual -Wfloat-equal -Wshadow -pedantic +WARNINGS += -Wpessimizing-move -Wredundant-move +#-wd2015,2012,2014 -wn3 +# -Winline -Wredundant-decls -Wunreachable-code +# -qopt-subscript-in-range +# -vec-threshold0 + +CXXFLAGS += -O3 -std=c++17 -tbb ${WARNINGS} +# https://stackoverflow.com/questions/67923287/how-to-resolve-no-member-named-task-in-namespace-tbb-error-when-using-oned +# needed on Desktop-PC Haase (not needed on mephisto) +CXXFLAGS += -D_GLIBCXX_USE_TBB_PAR_BACKEND=0 +#CXXFLAGS += -DMKL_ILP64 -I"${MKLROOT}/include" +#CXXFLAGS += -DMKL_ILP32 -I"${MKLROOT}/include" +LINKFLAGS += -O3 -tbb +#LINKFLAGS += -no-prec-div + +# interprocedural optimization +CXXFLAGS += -ipo +LINKFLAGS += -ipo +LINKFLAGS += -flto + +# annotated Assembler file +ANNOTED = -fsource-asm -S + +#architecture +CPU = -march=core-avx2 +#CPU += -mtp=zen +# -xCORE-AVX2 +# -axcode COMMON-AVX512 -axcode MIC-AVX512 -axcode CORE-AVX512 -axcode CORE-AVX2 +CXXFLAGS += ${CPU} +LINKFLAGS += ${CPU} + +# use MKL by INTEL +# https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/onemkl/link-line-advisor.html +# sequential MKL +# use the 32 bit interface (LP64) instead of 64 bit interface (ILP64) +CXXFLAGS += -qmkl=sequential -UMKL_ILP64 +LINKFLAGS += -O3 -qmkl=sequential -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread +#LINKFLAGS += -O3 -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread + +# shared libs: https://aur.archlinux.org/packages/intel-oneapi-compiler-static +# install intel-oneapi-compiler-static +# or +LINKFLAGS += -shared-intel + + +OPENMP = -qopenmp +CXXFLAGS += ${OPENMP} +LINKFLAGS += ${OPENMP} + + +# profiling tools +#CXXFLAGS += -pg +#LINKFLAGS += -pg +# -vec-report=3 +# -qopt-report=5 -qopt-report-phase=vec -qopt-report-phase=openmp +# -guide -parallel +# -guide-opts=string -guide-par[=n] -guide-vec[=n] +# -auto-p32 -simd + +# Reports: https://software.intel.com/en-us/articles/getting-the-most-out-of-your-intel-compiler-with-the-new-optimization-reports +#CXXFLAGS += -qopt-report=5 -qopt-report-phase=vec,par +#CXXFLAGS += -qopt-report=5 -qopt-report-phase=cg +# Redirect report from *.optrpt to stderr +# -qopt-report-file=stderr +# Guided paralellization +# -guide -parallel +# -guide-opts=string -guide-par[=n] -guide-vec[=n] +# -auto-p32 -simd + +## run time checks +# https://www.intel.com/content/www/us/en/develop/documentation/fortran-compiler-oneapi-dev-guide-and-reference/top/compiler-reference/compiler-options/offload-openmp-and-parallel-processing-options/par-runtime-control-qpar-runtime-control.html + + +default: ${PROGRAM} + +${PROGRAM}: ${OBJECTS} + $(LINKER) $^ ${LINKFLAGS} -o $@ + +clean: + rm -f ${PROGRAM} ${OBJECTS} *.optrpt + +clean_all:: clean + @rm -f *_ *~ *.bak *.log *.out *.tar + +run: clean ${PROGRAM} + ./${PROGRAM} ${PARAMS} + +# tar the current directory +MY_DIR = `basename ${PWD}` +tar: clean_all + @echo "Tar the directory: " ${MY_DIR} + @cd .. ;\ + tar cf ${MY_DIR}.tar ${MY_DIR} *default.mk ;\ + cd ${MY_DIR} +# tar cf `basename ${PWD}`.tar * + +doc: + doxygen Doxyfile + +######################################################################### + +.cpp.o: + $(CXX) -c $(CXXFLAGS) -o $@ $< + +.c.o: + $(CC) -c $(CFLAGS) -o $@ $< + +.f.o: + $(F77) -c $(FFLAGS) -o $@ $< + +################################################################################################## +# some tools +# Cache behaviour (CXXFLAGS += -g tracks down to source lines) +# https://software.intel.com/content/www/us/en/develop/documentation/vtune-help/top/analyze-performance/microarchitecture-analysis-group/memory-access-analysis.html + +mem: inspector +prof: vtune +cache: inspector + +gap_par_report: + ${CXX} -c -guide -parallel $(SOURCES) 2> gap.txt + +# GUI for performance report +amplifier: ${PROGRAM} + echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope + echo 0 | sudo tee /proc/sys/kernel/perf_event_paranoid + amplxe-gui & + +# GUI for Memory and Thread analyzer (race condition) +inspector: ${PROGRAM} + echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope +# inspxe-gui & + vtune-gui ./${PROGRAM} & + +advisor: +# source /opt/intel/oneapi/advisor/2021.2.0/advixe-vars.sh +# /opt/intel/oneapi/advisor/latest/bin64/advixe-gui & + advisor --collect=survey ./${PROGRAM} ${PARAMS} +# advisor --collect=roofline ./${PROGRAM} ${PARAMS} + advisor --report=survey --project-dir=./ src:r=./ --format=csv --report-output=./out/survey.csv +# advisor-gui + +vtune: + echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope +# https://software.intel.com/en-us/articles/intel-advisor-2017-update-1-what-s-new + export ADVIXE_EXPERIMENTAL=roofline + vtune -collect hotspots ./${PROGRAM} ${PARAMS} + vtune -report hotspots -r r000hs > vtune.out +# vtune-gui ./${PROGRAM} & + +icc-info: + icpc -# main.cpp + +# MKL on AMD +# https://www.computerbase.de/2019-11/mkl-workaround-erhoeht-leistung-auf-amd-ryzen/ +# +# https://sites.google.com/a/uci.edu/mingru-yang/programming/mkl-has-bad-performance-on-an-amd-cpu +# export MKL_DEBUG_CPU_TYPE=5 +# export MKL_NUM_THRAEDS=1 +# export MKL_DYNAMIC=false +# on Intel compiler +# http://publicclu2.blogspot.com/2013/05/intel-complier-suite-reference-card.html diff --git a/ex5/PGI_default.mk b/ex5/PGI_default.mk new file mode 100644 index 0000000..e06cb3c --- /dev/null +++ b/ex5/PGI_default.mk @@ -0,0 +1,96 @@ +# Basic Defintions for using PGI-compiler suite sequentially +# requires setting of COMPILER=PGI_ +# OPTIRUN = optirun +# on mephisto: +#CXXFLAGS += -I/share/apps/atlas/include +#LINKFLAGS += -L/share/apps/atlas/lib +#LINKFLAGS += -lcblas -latlas + +LINKFLAGS += -lblas + +CC = pgcc +CXX = pgc++ +F77 = pgfortran +LINKER = ${CXX} + + +WARNINGS = -Minform=warn + +#PGI_PROFILING = -Minfo=loop,vect,opt,intensity,mp,accel +PGI_PROFILING = -Minfo=ccff,accel,ipa,loop,lre,mp,opt,par,unified,vect,intensity + +# -Minfo +# -Mprof=lines + +CXXFLAGS += -std=c++14 -O3 -fast -DNDEBUG ${PGI_PROFILING} ${WARNINGS} +CXXFLAGS += -Mvect -Mcache_align -Msafeptr -Mprefetch -Mlre -Mdepchk +#-Msmart + +LINKFLAGS += ${PGI_PROFILING} +#-lcblas +# OpenMP +CXXFLAGS += -mp=align,bind,numa -Mneginfo=mp +LINKFLAGS += -mp=allcores,bind,numa + +default: ${PROGRAM} + +${PROGRAM}: ${OBJECTS} + $(LINKER) $^ ${LINKFLAGS} -o $@ + +clean: + @rm -f ${PROGRAM} ${OBJECTS} + +clean_all:: clean + @rm -f *_ *~ *.bak *.log *.out *.tar + +run: clean ${PROGRAM} + ./${PROGRAM} + +# tar the current directory +MY_DIR = `basename ${PWD}` +tar: clean_all + @echo "Tar the directory: " ${MY_DIR} + @cd .. ;\ + tar cf ${MY_DIR}.tar ${MY_DIR} *default.mk ;\ + cd ${MY_DIR} +# tar cf `basename ${PWD}`.tar * + +doc: + doxygen Doxyfile + +######################################################################### + +.cpp.o: + $(CXX) -c $(CXXFLAGS) -o $@ $< + +.c.o: + $(CC) -c $(CFLAGS) -o $@ $< + +.f.o: + $(F77) -c $(FFLAGS) -o $@ $< + +################################################################################################## +# # some tools +# # Simple run time profiling of your code +# # CXXFLAGS += -g +# # LINKFLAGS += + + +# Profiling options PGI, see: pgprof -h +PROF_FILE = jac.pgprof +# CPU_PROF = -allcache +CPU_PROF = --cpu-profiling on --analysis-metrics +# GPU_PROF = -cuda=gmem,branch,cc13 -cudainit +#GPU_PROF = -cuda=branch:cc20 +# + +cache: prof + +prof: ${PROGRAM} +# ./$^ +# $(CUDA_HOME)/bin/nvvp & +# more /opt/pgi/linux86-64/16.10/bin/pgcollectrc + ${OPTIRUN} ${BINDIR}pgprof ${CPU_PROF} -o $(PROF_FILE) ./$^ + ${OPTIRUN} ${BINDIR}pgprof -i $(PROF_FILE) 2> prof.out + + diff --git a/ex5/ex5_1/Makefile b/ex5/ex5_1/Makefile new file mode 100644 index 0000000..f5bc097 --- /dev/null +++ b/ex5/ex5_1/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_ + + +SOURCES = main.cpp mylib.cpp +OBJECTS = $(SOURCES:.cpp=.o) + +PROGRAM = main.${COMPILER} + +# uncomment the next to lines for debugging and detailed performance analysis +CXXFLAGS += -g +LINKFLAGS += -g +# do not use -pg with PGI compilers + +ifndef COMPILER + COMPILER=GCC_ +endif + +include ../${COMPILER}default.mk diff --git a/ex5/ex5_1/check_env.h b/ex5/ex5_1/check_env.h new file mode 100644 index 0000000..41bd99d --- /dev/null +++ b/ex5/ex5_1/check_env.h @@ -0,0 +1,99 @@ +#pragma once + +#include +#ifdef _OPENMP +#include +#endif +#include + +//##################################### +// G.Haase +// See https://sourceforge.net/p/predef/wiki/Compilers/ +// http://www.cplusplus.com/doc/tutorial/preprocessor/ +// also: export OMP_DISPLAY_ENV=VERBOSE +//##################################### +/** Checks for compilers, its versions, threads etc. + * + @param[in] argc number of command line arguemnts + @param[in] argv command line arguments as array of C-strings +*/ +template +void check_env(T argc, char const *argv[]) +{ + std::cout << "\n#######################################################################\n"; + std::cout << "Code :"; + for (T k = 0; k < argc; ++k) std::cout << " " << argv[k]; + std::cout << std::endl; + + // compiler: https://sourceforge.net/p/predef/wiki/Compilers/ + std::cout << "Compiler: "; +#if defined __INTEL_COMPILER +#pragma message(" ########## INTEL ###############") + std::cout << "INTEL " << __INTEL_COMPILER; + // Ignore warnings for #pragma acc unrecognice +#pragma warning disable 161 + // Ignore warnings for #pragma omp unrecognice +#pragma warning disable 3180 + +#elif defined __PGI +#pragma message(" ########## PGI ###############") + std::cout << "PGI " << __PGIC__ << "." << __PGIC_MINOR__ << "." << __PGIC_PATCHLEVEL__; +#elif defined __clang__ +#pragma message(" ########## CLANG ###############") + std::cout << "CLANG " << __clang_major__ << "." << __clang_minor__ << "."; // << __clang_patchlevel__; +#elif defined __GNUC__ +#pragma message(" ########## Gnu ###############") + std::cout << "Gnu " << __GNUC__ << "." << __GNUC_MINOR__ << "." << __GNUC_PATCHLEVEL__; +#else +#pragma message(" ########## unknown Compiler ###############") + std::cout << "unknown"; +#endif + std::cout << " C++ standard: " << __cplusplus << std::endl; + + // Parallel environments + std::cout << "Parallel: "; +#if defined MPI_VERSION +#pragma message(" ########## MPI ###############") +#ifdef OPEN_MPI + std::cout << "OpenMPI "; +#else + std::cout << "MPI "; +#endif + std::cout << MPI_VERSION << "." << MPI_SUBVERSION << " "; +#endif + +#ifdef _OPENMP +//https://www.openmp.org/specifications/ +//https://stackoverflow.com/questions/1304363/how-to-check-the-version-of-openmp-on-linux + std::unordered_map const map{ + {200505, "2.5"}, {200805, "3.0"}, {201107, "3.1"}, {201307, "4.0"}, {201511, "4.5"}, {201611, "5.0"}, {201811, "5.0"}}; +#pragma message(" ########## OPENMP ###############") + //std::cout << _OPENMP; + std::cout << "OpenMP "; + try { + std::cout << map.at(_OPENMP); + } + catch (...) { + std::cout << _OPENMP; + } + #pragma omp parallel + { + #pragma omp master + { + const int nn = omp_get_num_threads(); // OpenMP + std::cout << " ---> " << nn << " Threads "; + } + #pragma omp barrier + } + +#endif +#ifdef _OPENACC +#pragma message(" ########## OPENACC ###############") + std::cout << "OpenACC "; +#endif + std::cout << std::endl; + std::cout << "Date : " << __DATE__ << " " << __TIME__; + std::cout << "\n#######################################################################\n"; +} +// HG + diff --git a/ex5/ex5_1/main.cpp b/ex5/ex5_1/main.cpp new file mode 100644 index 0000000..c261c29 --- /dev/null +++ b/ex5/ex5_1/main.cpp @@ -0,0 +1,142 @@ +#include "check_env.h" +#include "mylib.h" +#include // atoi() +#include // strncmp() +#include +#include +#include // OpenMP +#include +#include +using namespace std; + +int main(int argc, char const *argv[]) +{ + omp_set_schedule(omp_sched_static, 2000000); + //omp_set_schedule(omp_sched_dynamic, 1000000); + //omp_set_schedule(omp_sched_guided, 1000000); + //omp_set_schedule(omp_sched_auto, 1); // chunk size does not matter for auto + + + // Speedup for different number of cores (incl. hyperthreading) + omp_set_num_threads(8); + + // Print number of available processors + cout << "Number of available processors: " << omp_get_num_procs() << endl; + + // Currently executing parallel code? -> no + cout << "Currently in parallel? " << omp_in_parallel() << endl; + + + int const NLOOPS = 10; // chose a value such that the benchmark runs at least 10 sec. + unsigned int N = 500000001; + + +//########################################################################## +// Read Parameter from command line (C++ style) + cout << "Checking command line parameters for: -n " << endl; + for (int i = 1; i < argc; i++) + { + cout << " arg[" << i << "] = " << argv[i] << endl; + string ss(argv[i]); + if ("-n"==ss && i + 1 < argc) // found "-n" followed by another parameter + { + N = static_cast(atoi(argv[i + 1])); + } + else + { + cout << "Corect call: " << argv[0] << " -n \n"; + } + } + + cout << "\nN = " << N << endl; + + check_env(argc, argv); +//######################################################################## + int nthreads; // OpenMP + #pragma omp parallel default(none) shared(cout,nthreads) + { + stringstream inparallel; + inparallel << "Currently in parallel? " << omp_in_parallel() << endl; + + + int const th_id = omp_get_thread_num(); // OpenMP + int const nthrds = omp_get_num_threads(); // OpenMP + stringstream ss; + ss << "C++: Hello World from thread " << th_id << " / " << nthrds << endl; + #pragma omp critical + { + cout << ss.str(); // output to a shared ressource + cout << inparallel.str() << endl; + } + #pragma omp master + nthreads = nthrds; // transfer nn to to master thread + } + cout << " " << nthreads << " threads have been started." << endl; + +//########################################################################## +// Memory allocation + cout << "Memory allocation\n"; + + vector x(N), y(N); + + cout.precision(2); + cout << 2.0 * N *sizeof(x[0]) / 1024 / 1024 / 1024 << " GByte Memory allocated\n"; + cout.precision(6); + +//########################################################################## +// Data initialization +// Special: x_i = i+1; y_i = 1/x_i ==> == N + for (unsigned int i = 0; i < N; ++i) + { + x[i] = i + 1; + y[i] = 1.0 / x[i]; + } + +//########################################################################## + cout << "\nStart Benchmarking\n"; + +// Do calculation + double tstart = omp_get_wtime(); // OpenMP + + double sk(0.0); + for (int i = 0; i < NLOOPS; ++i) + { + //sk = scalar(x, y); + sk = scalar_parallel(x, y); + //sk = scalar_trans(x, y); + //sk = norm(x); + } + + double t1 = omp_get_wtime() - tstart; // OpenMP + + t1 /= NLOOPS; // divide by number of function calls + +//########################################################################## +// Check the correct result + cout << "\n = " << sk << endl; + if (static_cast(sk) != N) + { + cout << " !! W R O N G result !!\n"; + } + cout << endl; + +//########################################################################## +// Timings and Performance + cout << endl; + cout.precision(2); + cout << "Total benchmarking time: " << t1*NLOOPS << endl; + cout << "Timing in sec. : " << t1 << endl; + cout << "GFLOPS : " << 2.0 * N / t1 / 1024 / 1024 / 1024 << endl; + cout << "GiByte/s : " << 2.0 * N / t1 / 1024 / 1024 / 1024 * sizeof(x[0]) << endl; + +//######################################################################### + + cout << "\n Try the reduction with an STL-vektor \n"; + + auto vr = reduction_vec_append(5); + cout << "done\n"; + cout << vr << endl; + + + return 0; +} // memory for x and y will be deallocated their destructors diff --git a/ex5/ex5_1/mylib.cpp b/ex5/ex5_1/mylib.cpp new file mode 100644 index 0000000..b5f2697 --- /dev/null +++ b/ex5/ex5_1/mylib.cpp @@ -0,0 +1,137 @@ +#include "mylib.h" +#include // assert() +#include +#include +#include // multiplies<>{} +#include +#include // iota() +#ifdef _OPENMP +#include +#endif +#include +using namespace std; + + +double scalar_parallel(vector const &x, vector const &y) +{ + assert(x.size() == y.size()); // switch off via compile flag: -DNDEBUG + size_t const N = x.size(); + double sum = 0.0; +#pragma omp parallel default(none) shared(x,y,N, cout) reduction(+:sum) + { + const size_t nthreads = omp_get_num_threads(); + const size_t threadnum = omp_get_thread_num(); + const size_t chunksize = N/nthreads; + + + size_t start = threadnum*chunksize; + size_t end = start + chunksize; + if (threadnum == nthreads - 1) + end = N; + + + for (size_t i = start; i < end; ++i) + { + sum += x[i] * y[i]; + } + + } + return sum; +} + + +vector reduction_vec_append(int n) +{ + vector vec(n); +#pragma omp parallel default(none) shared(cout) reduction(VecAppend:vec) + { + #pragma omp barrier + #pragma omp critical + cout << omp_get_thread_num() << " : " << vec.size() << endl; + #pragma omp barrier + iota( vec.begin(),vec.end(), omp_get_thread_num() ); + #pragma omp barrier + + } + return vec; +} + + + + + + + + + + + +double scalar(vector const &x, vector const &y) +{ + assert(x.size() == y.size()); // switch off via compile flag: -DNDEBUG + size_t const N = x.size(); + double sum = 0.0; +#pragma omp parallel for default(none) shared(x,y,N) reduction(+:sum) schedule(runtime) // added schedule(runtime) + for (size_t i = 0; i < N; ++i) + { + sum += x[i] * y[i]; + //sum += exp(x[i])*log(y[i]); + } + return sum; +} + + +double norm(vector const &x) +{ + size_t const N = x.size(); + double sum = 0.0; +#pragma omp parallel for default(none) shared(x,N) reduction(+:sum) schedule(runtime) // added schedule(runtime) + for (size_t i = 0; i < N; ++i) + { + sum += x[i]*x[i]; + } + return sum; +} + + +vector reduction_vec(int n) +{ + vector vec(n); +#pragma omp parallel default(none) shared(cout) reduction(VecAdd:vec) + { + #pragma omp barrier + #pragma omp critical + cout << omp_get_thread_num() << " : " << vec.size() << endl; + #pragma omp barrier + iota( vec.begin(),vec.end(), omp_get_thread_num() ); + #pragma omp barrier + + } + return vec; +} + + +double scalar_trans(vector const &x, vector const &y) +{ + assert(x.size() == y.size()); // switch off via compile flag: -DNDEBUG + vector z(x.size()); + //list z(x.size()); // parallel for-loop on iterators not possible (missing 'operator-') + // c++-20 CLANG_, ONEAPI_:condition of OpenMP for loop must be a relational comparison + + transform(cbegin(x),cend(x),cbegin(y),begin(z),std::multiplies<>{}); + + double sum = 0.0; +#pragma omp parallel for default(none) shared(z) reduction(+:sum) schedule(runtime) // added schedule(runtime) + for (auto pi = cbegin(z); pi!=cend(z); ++pi) + { + sum += *pi; + } + //for (auto val: z) + //{ + //sum += val; + //} + return sum; +} + + + diff --git a/ex5/ex5_1/mylib.h b/ex5/ex5_1/mylib.h new file mode 100644 index 0000000..fe1948a --- /dev/null +++ b/ex5/ex5_1/mylib.h @@ -0,0 +1,88 @@ +#pragma once +#include +#include // setw() +#include +#include +#include + +/** Inner product + @param[in] x vector + @param[in] y vector + @return resulting Euclidian inner product +*/ +double scalar_parallel(std::vector const &x, std::vector const &y); +double scalar(std::vector const &x, std::vector const &y); +double scalar_trans(std::vector const &x, std::vector const &y); + + + +// Declare additional reduction operation in OpenMP for STL-vector +#pragma omp declare reduction(VecAppend : std::vector : omp_out.insert(omp_out.end(), omp_in.begin(), omp_in.end())) \ + initializer (omp_priv=omp_orig) + +std::vector reduction_vec_append(int n); + + +/** l2-norm + @param[in] x vector + @return resulting Euclidian norm +*/ +double norm(std::vector const &x); + +/** Vector @p b adds its elements to vector @p a . + @param[in] a vector + @param[in] b vector + @return a+=b componentwise +*/ +template +std::vector &operator+=(std::vector &a, std::vector const &b) +{ + assert(a.size()==b.size()); + for (size_t k = 0; k < a.size(); ++k) { + a[k] += b[k]; + } + return a; +} + +// Declare the reduction operation in OpenMP for an STL-vector +// omp_out += omp_in requires operator+=(vector &, vector const &) from above +// ------------------------------------------------------------ +// https://scc.ustc.edu.cn/zlsc/tc4600/intel/2016.0.109/compiler_c/common/core/GUID-7312910C-D175-4544-99C5-29C12D980744.htm +// https://gist.github.com/eruffaldi/7180bdec4c8c9a11f019dd0ba9a2d68c +// https://stackoverflow.com/questions/29633531/user-defined-reduction-on-vector-of-varying-size +// see also p.74ff in https://www.fz-juelich.de/ias/jsc/EN/AboutUs/Staff/Hagemeier_A/docs-parallel-programming/OpenMP-Slides.pdf +#pragma omp declare reduction(VecAdd : std::vector : omp_out += omp_in) \ + initializer (omp_priv=omp_orig) + +// Templates are n o t possible, i.e. the reduction has to be declared fore a specified type. +//template +//#pragma omp declare reduction(VecAdd : std::vector : omp_out += omp_in) initializer (omp_priv(omp_orig)) +// MS: template nach #pragma !? + +// ------------------------------------------------------------ + +/** Test for vector reduction. + * + * The thread-private vectors of size @p n are initialized via @f$v_k^{tID}=tID+k@f$. + * Afterwards these vectors are accumulated, i.e., + * @f$v_k= \sum_{tID=0}^{numThreads} v_k^{tID}@f$. + * + * @param[in] n size of global/private vector + * @return resulting global vector. +*/ +std::vector reduction_vec(int n); + + + +/** Output of a vector. + @param[in,out] s output stream + @param[in] x vector + @return modified output stream +*/ +template +std::ostream &operator<<(std::ostream &s, std::vector const &x) +{ + for (auto const &v : x) s << std::setw(4) << v << " "; + return s; +} + diff --git a/ex5/ex5_1/timing.h b/ex5/ex5_1/timing.h new file mode 100644 index 0000000..11d8da2 --- /dev/null +++ b/ex5/ex5_1/timing.h @@ -0,0 +1,70 @@ +#pragma once +#include // timing +#include + +using Clock = std::chrono::system_clock; //!< The wall clock timer chosen +//using Clock = std::chrono::high_resolution_clock; +using TPoint= std::chrono::time_point; + +// [Galowicz, C++17 STL Cookbook, p. 29] +inline +std::stack MyStopWatch; //!< starting time of stopwatch + +/** Starts stopwatch timer. + * Use as @code tic(); myfunction(...) ; double tsec = toc(); @endcode + * + * The timining is allowed to be nested and the recent time is stored on top of the stack. + * + * @return recent time + * @see toc + */ +inline auto tic() +{ + MyStopWatch.push(Clock::now()); + return MyStopWatch.top(); +} + +/** Returns the elapsed time from stopwatch. + * + * The time from top of the stack is used + * if time point @p t_b is not passed as input parameter. + * Use as @code tic(); myfunction(...) ; double tsec = toc(); @endcode + * or as @code auto t_b = tic(); myfunction(...) ; double tsec = toc(t_b); @endcode + * The last option is to be used in the case of + * non-nested but overlapping time measurements. + * + * @param[in] t_b start time of some stop watch + * @return elapsed time in seconds. + * +*/ +inline double toc(TPoint const &t_b = MyStopWatch.top()) +{ + // https://en.cppreference.com/w/cpp/chrono/treat_as_floating_point + using Unit = std::chrono::seconds; + using FpSeconds = std::chrono::duration; + auto t_e = Clock::now(); + MyStopWatch.pop(); + return FpSeconds(t_e-t_b).count(); +} + +#include +#include +/** Executes function @p f and measures/prints elapsed wall clock time in seconds + * + * Call as + * @code measure("Time for (b = b + 1)", [&]() { + thrust::transform(b.begin(), b.end(), b.begin(), increment()); + }); @endcode + * + * @param[in] label additional string to be printed with the measurement. + * @param[in] f function to execute. + * @author Therese Bösmüller, 2025 + * +*/ +auto measure = [](const std::string& label, auto&& f) { + auto start = std::chrono::high_resolution_clock::now(); + f(); + auto stop = std::chrono::high_resolution_clock::now(); + auto duration = std::chrono::duration_cast(stop - start).count(); + std::cout << label << ": " << duration << " microseconds" << std::endl; +}; // ';' is needed for a visible documentation of this lambda-function diff --git a/ex5/ex5_2/Makefile b/ex5/ex5_2/Makefile new file mode 100644 index 0000000..7363b62 --- /dev/null +++ b/ex5/ex5_2/Makefile @@ -0,0 +1,31 @@ +# +# 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_ + + +SOURCES = main.cpp mylib.cpp +OBJECTS = $(SOURCES:.cpp=.o) + +PROGRAM = main.${COMPILER} + +# uncomment the next to lines for debugging and detailed performance analysis +CXXFLAGS += -g +LINKFLAGS += -g +# do not use -pg with PGI compilers + +ifndef COMPILER + COMPILER=GCC_ +endif + + +include ../${COMPILER}default.mk diff --git a/ex5/ex5_2/data_1.txt b/ex5/ex5_2/data_1.txt new file mode 100644 index 0000000..0cc4bb8 --- /dev/null +++ b/ex5/ex5_2/data_1.txt @@ -0,0 +1,501 @@ +141 +261 +87 +430 +258 +298 +425 +120 +496 +707 +244 +786 +75 +394 +4 +221 +2 +190 +143 +269 +175 +139 +599 +902 +940 +222 +483 +377 +524 +265 +69 +437 +174 +27 +955 +431 +962 +763 +8 +681 +706 +646 +553 +219 +773 +229 +371 +891 +857 +403 +319 +609 +911 +910 +592 +333 +854 +443 +905 +34 +533 +717 +180 +337 +188 +322 +404 +549 +49 +553 +275 +242 +244 +155 +957 +936 +819 +729 +176 +361 +189 +2 +317 +700 +626 +544 +440 +288 +502 +762 +763 +577 +748 +646 +124 +505 +348 +93 +148 +199 +673 +432 +695 +257 +10 +533 +280 +947 +907 +393 +25 +672 +838 +972 +57 +451 +583 +687 +720 +651 +727 +374 +582 +117 +58 +980 +285 +595 +963 +186 +194 +342 +933 +391 +274 +152 +398 +375 +132 +436 +92 +615 +11 +574 +790 +236 +449 +570 +62 +497 +643 +222 +838 +972 +847 +506 +279 +747 +237 +958 +621 +601 +173 +91 +256 +859 +912 +700 +726 +230 +577 +811 +404 +989 +90 +321 +512 +61 +726 +557 +530 +830 +859 +790 +318 +453 +753 +110 +110 +270 +525 +973 +711 +312 +292 +851 +912 +640 +256 +89 +839 +585 +949 +62 +585 +286 +828 +191 +443 +394 +827 +677 +208 +319 +134 +672 +571 +170 +148 +477 +909 +553 +33 +54 +806 +452 +383 +790 +365 +533 +712 +872 +329 +651 +975 +76 +588 +414 +310 +264 +759 +996 +187 +782 +196 +993 +803 +425 +729 +499 +809 +357 +74 +591 +911 +194 +433 +750 +40 +947 +764 +559 +184 +498 +518 +995 +855 +963 +679 +404 +935 +480 +232 +397 +706 +559 +757 +996 +963 +536 +964 +116 +52 +305 +581 +531 +902 +541 +432 +543 +713 +17 +801 +143 +479 +257 +370 +662 +170 +279 +199 +196 +327 +881 +472 +404 +180 +969 +408 +845 +616 +377 +878 +785 +465 +814 +899 +430 +335 +597 +902 +703 +378 +735 +955 +543 +541 +312 +72 +182 +93 +464 +10 +916 +643 +2 +31 +209 +455 +128 +9 +728 +355 +781 +437 +437 +50 +50 +92 +595 +242 +842 +858 +964 +489 +221 +227 +537 +763 +348 +462 +640 +918 +162 +716 +578 +434 +885 +394 +179 +634 +625 +328 +803 +1000 +981 +128 +233 +24 +608 +111 +408 +885 +549 +370 +209 +441 +957 +125 +471 +857 +44 +692 +979 +284 +134 +686 +910 +611 +900 +194 +755 +347 +419 +156 +820 +625 +739 +806 +68 +951 +498 +756 +743 +832 +157 +458 +619 +933 +836 +896 +583 +583 +855 +35 +886 +408 +37 +747 +155 +144 +606 +255 +325 +402 +407 +387 +610 +167 +189 +95 +324 +770 +235 +741 +693 +825 +828 +294 +310 +524 +326 +832 +811 +557 +263 +681 +234 +457 +385 +539 +992 +756 +981 +235 +529 +52 +757 +602 +858 +989 +930 +410 +1 +541 +208 +220 +326 +96 +748 +749 +544 +339 +833 +553 +958 +893 +357 +547 +347 +623 +797 +746 +126 +823 +26 +415 +732 +782 +368 + diff --git a/ex5/ex5_2/main.cpp b/ex5/ex5_2/main.cpp new file mode 100644 index 0000000..1bea099 --- /dev/null +++ b/ex5/ex5_2/main.cpp @@ -0,0 +1,130 @@ +#include "mylib.h" +#include +#include +#include +#include +using namespace std; + + +int main() +{ + // read vector from file + vector data_vector = {}; + + ifstream input_stream("data_1.txt"); + + size_t line; + while(input_stream >> line) + { + data_vector.push_back(line); + } + data_vector.shrink_to_fit(); + + + + + // specify loops + size_t NLOOPS = 10000; + + + + // ############# Parallelization with openMP ############# + // calculate arithmetic mean, geometric mean and harmonic mean + double am_omp, gm_omp, hm_omp; + + double tstart = omp_get_wtime(); + + for (size_t i = 0; i < NLOOPS; ++i) + means_omp(data_vector, am_omp, gm_omp, hm_omp); + + double t_means_omp = (omp_get_wtime() - tstart)/NLOOPS; + + // calculate minimum and maximum + size_t min, max; + + tstart = omp_get_wtime(); + + for (size_t i = 0; i < NLOOPS; ++i) + minmax_omp(data_vector, min, max); + + double t_minmax_omp = (omp_get_wtime() - tstart)/NLOOPS; + + + + + + + // ############# Parallelization with C++ algorithms ############# + // calculate arithmetic mean, geometric mean and harmonic mean + double am_cpp, gm_cpp, hm_cpp; + + tstart = omp_get_wtime(); + + for (size_t i = 0; i < NLOOPS; ++i) + means_cpp(data_vector, am_cpp, gm_cpp, hm_cpp); + + double t_means_cpp = (omp_get_wtime() - tstart)/NLOOPS; + + // calculate minimum and maximum + size_t min_cpp, max_cpp; + + tstart = omp_get_wtime(); + + for (size_t i = 0; i < NLOOPS; ++i) + minmax_cpp(data_vector, min_cpp, max_cpp); + + double t_minmax_cpp = (omp_get_wtime() - tstart)/NLOOPS; + + + + + + // print results + cout << "####### OpenMP #######" << endl; + cout << "minimum: " << min << endl; + cout << "maximum: " << max << endl; + cout << "duration: " << t_minmax_omp << endl << endl; + + cout << "arithmetic mean: " << am_omp << endl; + cout << "geometric mean: " << gm_omp << endl; + cout << "harmonic mean: " << hm_omp << endl; + cout << "duration: " << t_means_omp << endl << endl; + + + cout << "####### C++ #######" << endl; + cout << "minimum: " << min_cpp << endl; + cout << "maximum: " << max_cpp << endl; + cout << "duration: " << t_minmax_cpp << endl << endl; + + cout << "arithmetic mean: " << am_cpp << endl; + cout << "geometric mean: " << gm_cpp << endl; + cout << "harmonic mean: " << hm_cpp << endl; + cout << "duration: " << t_means_cpp << endl << endl; + + + + // ####### OpenMP ####### + // minimum: 1 + // maximum: 1000 + // duration: 3.52086e-06 + + // arithmetic mean: 498.184 + // geometric mean: 364.412 + // harmonic mean: 95.6857 + // duration: 5.90171e-06 + + // ####### C++ ####### + // minimum: 1 + // maximum: 1000 + // duration: 1.76816e-05 + + // arithmetic mean: 498.184 + // geometric mean: 364.412 + // harmonic mean: 95.6857 + // duration: 2.35728e-05 + + // --> the openMP variant is faster in both cases + + + return 0; +} diff --git a/ex5/ex5_2/mylib.cpp b/ex5/ex5_2/mylib.cpp new file mode 100644 index 0000000..34e5992 --- /dev/null +++ b/ex5/ex5_2/mylib.cpp @@ -0,0 +1,103 @@ +#include "mylib.h" +#include +#include +#include +#include +#include +#include + +using namespace std; + + +void means_omp(const std::vector numbers, double &am, double &gm, double &hm) +{ + size_t const n = numbers.size(); + + am = 0.; + gm = 0.; + hm = 0.; + +#pragma omp parallel for shared(numbers, n, cout) reduction(+:am, gm, hm) + for (size_t i = 0; i < n; ++i) + { + am += numbers[i]; + gm += log(numbers[i]); + hm += 1.0/numbers[i]; + + // #pragma omp critical + // { + // cout << "Thread number " << omp_get_thread_num() << " processes value " << numbers[i] << endl; + // } + } + + am /= n; + gm = exp(gm/n); + hm = n/hm; +} + + +void minmax_omp(const std::vector numbers, size_t &global_min, size_t &global_max) +{ + size_t const n = numbers.size(); + + global_min = -1; // gives the maximum size_t value + global_max = 0; + +#pragma omp parallel shared(numbers, n, global_min, global_max) + { + const size_t nthreads = omp_get_num_threads(); + const size_t threadnum = omp_get_thread_num(); + const size_t chunksize = n/nthreads; + + + size_t start = threadnum*chunksize; + size_t end = start + chunksize; + if (threadnum == nthreads - 1) + end = n; + + + size_t local_min = -1; + size_t local_max = 0; + for (size_t i = start; i < end ; ++i) + { + if (numbers[i] < local_min) + local_min = numbers[i]; + + if (numbers[i] > local_max) + local_max = numbers[i]; + } + + #pragma omp critical + { + if (local_min < global_min) + global_min = local_min; + + if (local_max > global_max) + global_max = local_max; + } + } +} + + +void means_cpp(const std::vector numbers, double &am, double &gm, double &hm) +{ + size_t const n = numbers.size(); + + am = reduce(std::execution::par, numbers.begin(), numbers.end()); + gm = transform_reduce(std::execution::par, numbers.begin(), numbers.end(), 0.0, plus{}, [] (size_t x) -> double { return log(x); } ); + hm = transform_reduce(std::execution::par, numbers.begin(), numbers.end(), 0.0, plus{}, [] (size_t x) -> double { return 1.0/x; }); + + am /= n; + gm = exp(gm/n); + hm = n/hm; +} + + +void minmax_cpp(const std::vector numbers, size_t &global_min, size_t &global_max) +{ + auto min_it = min_element(std::execution::par, numbers.begin(), numbers.end()); + auto max_it = max_element(std::execution::par, numbers.begin(), numbers.end()); + + global_min = *min_it; + global_max = *max_it; +} \ No newline at end of file diff --git a/ex5/ex5_2/mylib.h b/ex5/ex5_2/mylib.h new file mode 100644 index 0000000..01d2fa9 --- /dev/null +++ b/ex5/ex5_2/mylib.h @@ -0,0 +1,42 @@ +#include + +/** + This function calculates arithmetic mean, geometric mean and harmonic mean of an integer vector. + Uses openMP parallelization. + @param[in] numbers vector containing integers + @param[out] am arithmetic mean + @param[out] gm geometric mean + @param[out] hm harmonic mean +*/ +void means_omp(const std::vector numbers, double &am, double &gm, double &hm); + + +/** + This function calculates the minimum and maximum of a vector. + Uses openMP parallelization. + @param[in] numbers vector containing integers + @param[out] global_min minimum + @param[out] global_max maximum +*/ +void minmax_omp(const std::vector numbers, size_t &global_min, size_t &global_max); + + +/** + This function calculates arithmetic mean, geometric mean and harmonic mean of an integer vector. + Uses C++ parallelization. + @param[in] numbers vector containing integers + @param[out] am arithmetic mean + @param[out] gm geometric mean + @param[out] hm harmonic mean +*/ +void means_cpp(const std::vector numbers, double &am, double &gm, double &hm); + + +/** + This function calculates the minimum and maximum of a vector. + Uses C++ parallelization. + @param[in] numbers vector containing integers + @param[out] global_min minimum + @param[out] global_max maximum +*/ +void minmax_cpp(const std::vector numbers, size_t &global_min, size_t &global_max); \ No newline at end of file diff --git a/ex5/ex5_3/Makefile b/ex5/ex5_3/Makefile new file mode 100644 index 0000000..4a714a3 --- /dev/null +++ b/ex5/ex5_3/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_ + + +SOURCES = main.cpp goldbach.cpp +OBJECTS = $(SOURCES:.cpp=.o) + +PROGRAM = main.${COMPILER} + +# uncomment the next to lines for debugging and detailed performance analysis +CXXFLAGS += -g +LINKFLAGS += -g +# do not use -pg with PGI compilers + +ifndef COMPILER + COMPILER=GCC_ +endif + +include ../${COMPILER}default.mk diff --git a/ex5/ex5_3/goldbach.cpp b/ex5/ex5_3/goldbach.cpp new file mode 100644 index 0000000..55709c3 --- /dev/null +++ b/ex5/ex5_3/goldbach.cpp @@ -0,0 +1,46 @@ +#include "goldbach.h" +#include +#include +#include + +size_t single_goldbach(size_t k) +{ + const std::vector relevant_primes = get_primes(k); + size_t m = relevant_primes.size(); + + size_t counter = 0; + +#pragma omp parallel for shared(relevant_primes, m, k) reduction(+:counter) + for(size_t i = 0; i < m; ++i) + { + for(size_t j = i; j < m; ++j) + { + if(relevant_primes[i] + relevant_primes[j] == k) + ++counter; + } + } + + return counter; +} + + +std::vector count_goldbach(size_t n) +{ + const std::vector relevant_primes = get_primes(n); + size_t m = relevant_primes.size(); + + std::vector counter_vector(n + 1, 0); + +#pragma omp parallel for shared(relevant_primes, m, n) reduction(VecAdd:counter_vector) + for(size_t i = 0; i < m; ++i) + { + for(size_t j = i; j < m; ++j) + { + size_t sum = relevant_primes[i] + relevant_primes[j]; + if(sum <= n) + ++counter_vector[relevant_primes[i] + relevant_primes[j]]; + } + } + + return counter_vector; +} diff --git a/ex5/ex5_3/goldbach.h b/ex5/ex5_3/goldbach.h new file mode 100644 index 0000000..15df6d4 --- /dev/null +++ b/ex5/ex5_3/goldbach.h @@ -0,0 +1,45 @@ +#pragma once +#include "mayer_primes.h" +#include +#include + + +/** + This function returns the number of possible decompositions of an integer into a sum of two prime numbers. + @param[in] k first integer + @param[out] count number of decompositions +*/ +size_t single_goldbach(size_t k); + + +/** + This function returns the number of possible decompositions into a sum of two prime numbers of all even integers in the interval [4,n]. + @param[in] n upper integer bound + @param[out] count_vector vector containing the number of decompositions for a natural number the corresponding index +*/ +std::vector count_goldbach(size_t n); + + +/** Vector @p b adds its elements to vector @p a . + @param[in] a vector + @param[in] b vector + @return a+=b componentwise +*/ +template +std::vector &operator+=(std::vector &a, std::vector const &b) +{ + assert(a.size()==b.size()); + for (size_t k = 0; k < a.size(); ++k) { + a[k] += b[k]; + } + return a; +} + +// Declare the reduction operation in OpenMP for an STL-vector +// omp_out += omp_in requires operator+=(vector &, vector const &) from above +// ------------------------------------------------------------ +// https://scc.ustc.edu.cn/zlsc/tc4600/intel/2016.0.109/compiler_c/common/core/GUID-7312910C-D175-4544-99C5-29C12D980744.htm +// https://gist.github.com/eruffaldi/7180bdec4c8c9a11f019dd0ba9a2d68c +// https://stackoverflow.com/questions/29633531/user-defined-reduction-on-vector-of-varying-size +// see also p.74ff in https://www.fz-juelich.de/ias/jsc/EN/AboutUs/Staff/Hagemeier_A/docs-parallel-programming/OpenMP-Slides.pdf +#pragma omp declare reduction(VecAdd : std::vector : omp_out += omp_in) initializer (omp_priv=omp_orig) \ No newline at end of file diff --git a/ex5/ex5_3/main.cpp b/ex5/ex5_3/main.cpp new file mode 100644 index 0000000..1be01c2 --- /dev/null +++ b/ex5/ex5_3/main.cpp @@ -0,0 +1,45 @@ +#include "goldbach.h" +#include +#include +#include +using namespace std; + + +int main() +{ + cout << "Check: 694 has "<< single_goldbach(694) << " decompositions." << endl << "----------------------------------------" << endl; + + for(size_t n : {10000, 100000, 400000, 1000000, 2000000}) + { + double t_start = omp_get_wtime(); + + auto goldbach_vector = count_goldbach(n); + + auto max_it = max_element(goldbach_vector.begin(), goldbach_vector.end()); + size_t max_number = distance(goldbach_vector.begin(), max_it); + + double t_end = omp_get_wtime() - t_start; + + cout << "The number " << max_number << " has " << *max_it << " decompositions. Duration: " << t_end << endl; + } + + /* + ###### WITHOUT PARALLELIZATION ###### + The number 9240 has 329 decompositions. Duration: 0.00307696 + The number 99330 has 2168 decompositions. Duration: 0.189839 + The number 390390 has 7094 decompositions. Duration: 1.3042 + The number 990990 has 15594 decompositions. Duration: 5.45034 + The number 1981980 has 27988 decompositions. Duration: 47.1807 + + + ###### WITH PARALLELIZATION ###### + The number 9240 has 329 decompositions. Duration: 0.000734854 + The number 99330 has 2168 decompositions. Duration: 0.0251322 + The number 390390 has 7094 decompositions. Duration: 0.487375 + The number 990990 has 15594 decompositions. Duration: 6.16972 + The number 1981980 has 27988 decompositions. Duration: 31.5699 + */ + + + return 0; +} \ No newline at end of file diff --git a/ex5/ex5_3/mayer_primes.h b/ex5/ex5_3/mayer_primes.h new file mode 100644 index 0000000..6c6dc23 --- /dev/null +++ b/ex5/ex5_3/mayer_primes.h @@ -0,0 +1,73 @@ +#pragma once + +#include //memset +#include +//using namespace std; + +/** \brief Determines all prime numbers in interval [2, @p max]. + * + * The sieve of Eratosthenes is used. + * + * The implementation originates from Florian Mayer. + * + * \param[in] max end of interval for the prime number search. + * \return vector of prime numbers @f$2,3,5, ..., p<=max @f$. + * + * \copyright + * Copyright (c) 2008 Florian Mayer (adapted by Gundolf Haase 2018) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, + * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + */ +template +std::vector get_primes(T max) +{ + std::vector primes; + char *sieve; + sieve = new char[max / 8 + 1]; + // Fill sieve with 1 + memset(sieve, 0xFF, (max / 8 + 1) * sizeof(char)); + for (T x = 2; x <= max; x++) + { + if (sieve[x / 8] & (0x01 << (x % 8))) { + primes.push_back(x); + // Is prime. Mark multiplicates. + for (T j = 2 * x; j <= max; j += x) + { + sieve[j / 8] &= ~(0x01 << (j % 8)); + } + } + } + delete[] sieve; + return primes; +} + +//--------------------------------------------------------------- +//int main() // by Florian Mayer +//{g++ -O3 -std=c++14 -fopenmp main.cpp && ./a.out +// vector primes; +// primes = get_primes(10000000); +// // return 0; +// // Print out result. +// vector::iterator it; +// for(it=primes.begin(); it < primes.end(); it++) +// cout << *it << " "; +// +// cout << endl; +// return 0; +//} diff --git a/ex5/ex5_4/Makefile b/ex5/ex5_4/Makefile new file mode 100644 index 0000000..b2129d8 --- /dev/null +++ b/ex5/ex5_4/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_ + + +SOURCES = main.cpp benchmarks.cpp benchmark_tests.cpp +OBJECTS = $(SOURCES:.cpp=.o) + +PROGRAM = main.${COMPILER} + +# uncomment the next to lines for debugging and detailed performance analysis +CXXFLAGS += -g +LINKFLAGS += -g +# do not use -pg with PGI compilers + +ifndef COMPILER + COMPILER=GCC_ +endif + +include ../${COMPILER}default.mk diff --git a/ex5/ex5_4/benchmark_tests.cpp b/ex5/ex5_4/benchmark_tests.cpp new file mode 100644 index 0000000..35ed87b --- /dev/null +++ b/ex5/ex5_4/benchmark_tests.cpp @@ -0,0 +1,375 @@ +#include "benchmark_tests.h" +#include "benchmarks.h" +#include +#include +#include +using namespace std::chrono; + +vector test_A(const size_t &NLOOPS, const size_t &N) +{ + cout << "#################### (A) ####################" << endl; + cout << "\nLOOPS = " << NLOOPS << endl; + cout << "\nN = " << N << endl; + + +// Memory allocation + cout << "Memory allocation\n"; + + vector x(N), y(N); + + cout.precision(2); + cout << 2.0*N *sizeof(x[0]) / 1024 / 1024 / 1024 << " GByte Memory allocated\n"; + cout.precision(6); + + +// Data initialization +// Special: x_i = i+1; y_i = 1/x_i ==> == N + + for (size_t i = 0; i < N; ++i) + { + x[i] = i % 219 + 1; + y[i] = 1.0/x[i]; + } + + + cout << "\nStart Benchmarking scalar\n"; + + auto t1 = system_clock::now(); // start timer +// Do calculation + double check(0.0),ss(0.0); + for (size_t i = 0; i < NLOOPS; ++i) + { + check = scalar_parallel(x, y); + ss += check; // prevents the optimizer from removing unused calculation results. + } + + auto t2 = system_clock::now(); // stop timer + auto duration = duration_cast(t2 - t1); // duration in microseconds + double t_diff = static_cast(duration.count()) / 1e6; // overall duration in seconds + t_diff = t_diff/NLOOPS; // duration per loop seconds + + + +// Check the correct result + cout << "\n = " << check << endl; + if (static_cast(check) != N) + cout << " !! W R O N G result !!\n"; + cout << endl; + + +// Timings and Performance + cout << endl; + cout.precision(2); + + + double Gflops = 2.0*N / t_diff / 1024 / 1024 / 1024; + double MemBandwidth = 2.0*N / t_diff / 1024 / 1024 / 1024 * sizeof(x[0]); + + cout << "Total duration : " << t_diff*NLOOPS << endl; + cout << "Timing in sec. : " << t_diff << endl; + cout << "GFLOPS : " << Gflops << endl; + cout << "GiByte/s : " << MemBandwidth << endl; + + + return vector{t_diff, Gflops, MemBandwidth}; +} + +vector test_A_sum(const size_t &NLOOPS, const size_t &N) +{ + cout << "#################### (A) sum ####################" << endl; + cout << "\nLOOPS = " << NLOOPS << endl; + cout << "\nN = " << N << endl; + + +// Memory allocation + cout << "Memory allocation\n"; + + vector x(N); + + cout.precision(2); + cout << 1.0*N *sizeof(x[0]) / 1024 / 1024 / 1024 << " GByte Memory allocated\n"; + cout.precision(6); + + +// Data initialization + + for (size_t i = 0; i < N; ++i) + { + x[i] = 1; + } + + + cout << "\nStart Benchmarking sum\n"; + + auto t1 = system_clock::now(); // start timer +// Do calculation + double check(0.0),ss(0.0); + for (size_t i = 0; i < NLOOPS; ++i) + { + check = sum(x); + ss += check; // prevents the optimizer from removing unused calculation results. + } + + auto t2 = system_clock::now(); // stop timer + auto duration = duration_cast(t2 - t1); // duration in microseconds + double t_diff = static_cast(duration.count()) / 1e6; // overall duration in seconds + t_diff = t_diff/NLOOPS; // duration per loop seconds + + + +// Check the correct result + cout << "\n = " << check << endl; + if (static_cast(check) != N) + cout << " !! W R O N G result !!\n"; + cout << endl; + + +// Timings and Performance + cout << endl; + cout.precision(2); + + + double Gflops = 1.0*N / t_diff / 1024 / 1024 / 1024; + double MemBandwidth = 1.0*N / t_diff / 1024 / 1024 / 1024 * sizeof(x[0]); + + cout << "Total duration : " << t_diff*NLOOPS << endl; + cout << "Timing in sec. : " << t_diff << endl; + cout << "GFLOPS : " << Gflops << endl; + cout << "GiByte/s : " << MemBandwidth << endl; + + + return vector{t_diff, Gflops, MemBandwidth}; +} + + +vector test_B(const size_t &NLOOPS, const size_t &N, const size_t &M) +{ + cout << "#################### (B) ####################" << endl; + + cout << "\nLOOPS = " << NLOOPS << endl; + cout << "\nN = " << N << endl; + cout << "\nM = " << M << endl; + +// Memory allocation + cout << "Memory allocation\n"; + + vector A(M*N); + vector x(N); + + cout.precision(2); + cout << (1.0*M*N + N) * sizeof(x[0]) / 1024 / 1024 / 1024 << " GByte Memory allocated\n"; + cout.precision(6); + +// Data initialization + + for (size_t i = 0; i < M; ++i) + for (size_t j = 0; j < N; ++j) + A[N*i + j] = (i + j) % 219 + 1; + + + for (size_t j = 0; j < N; ++j) + { + x[j] = 1.0/A[N*17 + j]; + } + + cout << "\nStart Benchmarking MatVec\n"; + + auto t1 = system_clock::now(); // start timer +// Do calculation + vector b(M); + + for (size_t i = 0; i < NLOOPS; ++i) + { + b = MatVec_parallel(A, x); + } + + auto t2 = system_clock::now(); // stop timer + auto duration = duration_cast(t2 - t1); // duration in microseconds + double t_diff = static_cast(duration.count()) / 1e6; // overall duration in seconds + t_diff = t_diff/NLOOPS; // duration per loop seconds + + +// Check the correct result + cout << "\n = " << b[17] << endl; + if (static_cast(b[17]) != N) + { + cout << " !! W R O N G result !!\n"; + } + cout << endl; + + +// Timings and Performance + cout << endl; + cout.precision(2); + + double Gflops = (2.0*N*M) / t_diff / 1024 / 1024 / 1024; + double MemBandwidth = (2.0*N*M + M)/ t_diff / 1024 / 1024 / 1024 * sizeof(x[0]); + + cout << "Total duration : " << t_diff*NLOOPS << endl; + cout << "Timing in sec. : " << t_diff << endl; + cout << "GFLOPS : " << Gflops << endl; + cout << "GiByte/s : " << MemBandwidth << endl; + + + + return vector{t_diff, Gflops, MemBandwidth}; +} + + +vector test_C(const size_t &NLOOPS, const size_t &L, const size_t &M, const size_t &N) +{ + cout << "#################### (C) ####################" << endl; + cout << "\nLOOPS = " << NLOOPS << endl; + cout << "\nL = " << L << endl; + cout << "\nM = " << M << endl; + cout << "\nN = " << N << endl; + + +// Memory allocation + cout << "Memory allocation\n"; + + vector A(M*L); + vector B(L*N); + + cout.precision(2); + cout << (1.0*M*L + L*N) *sizeof(A[0]) / 1024 / 1024 / 1024 << " GByte Memory allocated\n"; + cout.precision(6); + + +// Data initialization + + for (size_t i = 0; i < M; ++i) + for (size_t k = 0; k < L; ++k) + A[L*i + k] = (i + k) % 219 + 1; + + for (size_t k = 0; k < L; ++k) + for (size_t j = 0; j < N; ++j) + B[N*k + j] = 1.0/A[L*17 + k]; + + + cout << "\nStart Benchmarking MatMat\n"; + + auto t1 = system_clock::now(); // start timer +// Do calculation + vector C(M*N); + double check; + double check_sum = 0; + + for (size_t i = 0; i < NLOOPS; ++i) + { + C = MatMat_parallel(A, B, L); + + check = C[N*17]; + check_sum += check; // prevents the optimizer from removing unused calculation results. + } + cout << check_sum; + + auto t2 = system_clock::now(); // stop timer + auto duration = duration_cast(t2 - t1); // duration in microseconds + double t_diff = static_cast(duration.count()) / 1e6; // overall duration in seconds + t_diff = t_diff/NLOOPS; // duration per loop seconds + + +// Check the correct result + cout << "\n C[17,0] = " << check << endl; + if (static_cast(check) != L) + { + cout << " !! W R O N G result !!, should be " << L <<"\n"; + } + cout << endl; + +// Timings and Performance + cout << endl; + cout.precision(2); + + + double Gflops = (2.0*L*N*M) / t_diff / 1024 / 1024 / 1024; + double MemBandwidth = (2.0*L*N*M + M*N)/ t_diff / 1024 / 1024 / 1024 * sizeof(A[0]); + + cout << "Total duration : " << t_diff*NLOOPS << endl; + cout << "Timing in sec. : " << t_diff << endl; + cout << "GFLOPS : " << Gflops << endl; + cout << "GiByte/s : " << MemBandwidth << endl; + + + + return vector{t_diff, Gflops, MemBandwidth}; +} + + +vector test_D(const size_t &NLOOPS, const size_t &N, const size_t &p) +{ + cout << "#################### (D) ####################" << endl; + cout << "\nLOOPS = " << NLOOPS << endl; + cout << "\nN = " << N << endl; + cout << "\np = " << p << endl; + +// Memory allocation + cout << "Memory allocation\n"; + + vector a(p + 1, 0); + vector x(N); + + cout.precision(2); + cout << (1.0*(p + 1) + N) *sizeof(x[0]) / 1024 / 1024 / 1024 << " GByte Memory allocated\n"; + cout.precision(6); + +// Data initialization + + for (size_t j = 0; j < N; ++j) + x[j] = 1.0*j; + + for (size_t k = 0; k < p + 1; ++k) + a[k] = pow(-1.0, k); // poly(x) = 1 - x + x^2 - x^3 + x^4 - ... + + + + cout << "\nStart Benchmarking poly\n"; + + auto t1 = system_clock::now(); // start timer +// Do calculation + vector y(N); + double check; + double check_sum; + + for (size_t i = 0; i < NLOOPS; ++i) + { + y = poly_parallel(a, x); + check = y[0]; + + check_sum += check; // prevents the optimizer from removing unused calculation results. + } + + auto t2 = system_clock::now(); // stop timer + auto duration = duration_cast(t2 - t1); // duration in microseconds + double t_diff = static_cast(duration.count()) / 1e6; // overall duration in seconds + t_diff = t_diff/NLOOPS; // duration per loop seconds + + + +// Check the correct result + cout << "\n poly(" << x[0] << ") = " << check << endl; + if (abs(check - 1.0) > 1.0/1e6) + { + cout << " !! W R O N G result !!\n"; + } + cout << endl; + + +// Timings and Performance + cout << endl; + cout.precision(2); + + + double Gflops = (N*(p + 1)*3.0) / t_diff / 1024 / 1024 / 1024; + double MemBandwidth = (N*(2.0 + 3.0*(p + 1)))/ t_diff / 1024 / 1024 / 1024 * sizeof(x[0]); + + cout << "Total duration : " << t_diff*NLOOPS << endl; + cout << "Timing in sec. : " << t_diff << endl; + cout << "GFLOPS : " << Gflops << endl; + cout << "GiByte/s : " << MemBandwidth << endl; + + + + return vector{t_diff, Gflops, MemBandwidth}; +} \ No newline at end of file diff --git a/ex5/ex5_4/benchmark_tests.h b/ex5/ex5_4/benchmark_tests.h new file mode 100644 index 0000000..45c64a9 --- /dev/null +++ b/ex5/ex5_4/benchmark_tests.h @@ -0,0 +1,13 @@ +#pragma once +#include +using namespace std; + +vector test_A(const size_t &NLOOPS, const size_t &N); + +vector test_A_sum(const size_t &NLOOPS, const size_t &N); + +vector test_B(const size_t &NLOOPS, const size_t &N, const size_t &M); + +vector test_C(const size_t &NLOOPS, const size_t &L, const size_t &M, const size_t &N); + +vector test_D(const size_t &NLOOPS, const size_t &N, const size_t &p); \ No newline at end of file diff --git a/ex5/ex5_4/benchmarks.cpp b/ex5/ex5_4/benchmarks.cpp new file mode 100644 index 0000000..c0eb7d9 --- /dev/null +++ b/ex5/ex5_4/benchmarks.cpp @@ -0,0 +1,141 @@ +#include "benchmarks.h" +#include // assert() +#include +#include +#include +#include + +// (A) Inner product of two vectors (from skalar_stl) +double scalar_parallel(vector const &x, vector const &y) +{ + assert(x.size() == y.size()); + size_t const N = x.size(); + double sum = 0.0; +//#pragma omp parallel for default(none) shared(x, y, N) reduction(+:sum) schedule(runtime) +#pragma omp parallel for shared(x, y, N) reduction(+:sum) + for (size_t i = 0; i < N; ++i) + { + sum += x[i] * y[i]; + } + return sum; +} + +// (A) Vector entry sum +double sum(vector const &x) +{ + double sum = 0.0; +#pragma omp parallel for shared(x) reduction(+:sum) + for (size_t i = 0; i < x.size(); ++i) + { + sum += x[i]; + } + return sum; +} + + +// (B) Matrix-vector product (from intro_vector_densematrix) +vector MatVec_parallel(vector const &A, vector const &x) +{ + size_t const nelem = A.size(); + size_t const N = x.size(); + assert(nelem % N == 0); // make sure multiplication is possible + size_t const M = nelem/N; + + vector b(M); + +#pragma omp parallel for shared(A, x, N, M, b) + for (size_t i = 0; i < M; ++i) + { + double tmp = 0.0; + for (size_t j = 0; j < N; ++j) + tmp += A[N*i + j] * x[j]; + b[i] = tmp; + } + + return b; +} + + +// (C) Matrix-matrix product +vector MatMat_parallel(vector const &A, vector const &B, size_t const &L) +{ + size_t const nelem_A = A.size(); + size_t const nelem_B = B.size(); + + assert(nelem_A % L == 0 && nelem_B % L == 0); + + size_t const M = nelem_A/L; + size_t const N = nelem_B/L; + + + vector C(M*N); + + +#pragma omp parallel for shared(A, B, M, N, L, C) + for (size_t i = 0; i < M; ++i) + { + for (size_t k = 0; k < L; ++k) + { + for (size_t j = 0; j < N; ++j) + { + C[N*i + j] += A[L*i + k]*B[N*k + j]; + } + + } + } + + return C; +} + + +// (D) Evaluation of a polynomial function +vector poly_parallel(vector const &a, vector const &x) +{ + size_t const N = x.size(); + size_t const p = a.size() - 1; + vector y(N, 0); + +#pragma omp parallel for shared(a, x, N, p, y) + for (size_t i = 0; i < N; ++i) + { + double x_temp = x[i]; + double y_temp = 0; + for (size_t k = 0; k < p + 1; ++k) + { + y_temp += x_temp*y_temp + a[p - k]; + } + y[i] = y_temp; + } + + return y; +} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ex5/ex5_4/benchmarks.h b/ex5/ex5_4/benchmarks.h new file mode 100644 index 0000000..2b55d2b --- /dev/null +++ b/ex5/ex5_4/benchmarks.h @@ -0,0 +1,55 @@ +#pragma once +#include +using namespace std; + +/** (A) Inner product of two vectors (from skalar_stl) + @param[in] x vector + @param[in] y vector + @return resulting Euclidian inner product +*/ +double scalar_parallel(vector const &x, vector const &y); + + +/** (A) Sum entries of vector + @param[in] x vector + @return sum +*/ +double sum(vector const &x); + + +/** (B) Matrix-vector product (from intro_vector_densematrix) + * @param[in] A dense matrix (1D access) + * @param[in] u vector + * + * @return resulting vector +*/ +vector MatVec_parallel(vector const &A, vector const &x); + + +/** (C) Matrix-matrix product + * @param[in] A MxL dense matrix (1D access) + * @param[in] B LxN dense matrix (1D access) + * @param[in] shared_dim shared dimension L + * + * @return resulting MxN matrix +*/ +vector MatMat_parallel(vector const &A, vector const &B, size_t const &shared_dim); + + +/** (D) Evaluation of a polynomial function using Horner's scheme + * @param[in] a coefficient vector + * @param[in] x vector with input values + * + * @return vector with output values +*/ +vector poly_parallel(vector const &a, vector const &x); + + + + + + + + + + diff --git a/ex5/ex5_4/main.cpp b/ex5/ex5_4/main.cpp new file mode 100644 index 0000000..d8fa63d --- /dev/null +++ b/ex5/ex5_4/main.cpp @@ -0,0 +1,84 @@ +#include "benchmark_tests.h" +#include +#include + +int main() +{ + vector> results_scalar; + results_scalar.push_back(test_A(2000000, pow(10,3))); + results_scalar.push_back(test_A(1000000, pow(10,4))); + results_scalar.push_back(test_A(100000, pow(10,5))); + results_scalar.push_back(test_A(10000, pow(10,6))); + results_scalar.push_back(test_A(750, pow(10,7))); + results_scalar.push_back(test_A(125, pow(10,8))); + + + vector> results_sum; + results_sum.push_back(test_A_sum(3000000, pow(10,3))); + results_sum.push_back(test_A_sum(2000000, pow(10,4))); + results_sum.push_back(test_A_sum(1000000, pow(10,5))); + results_sum.push_back(test_A_sum(50000, pow(10,6))); + results_sum.push_back(test_A_sum(2000, pow(10,7))); + results_sum.push_back(test_A_sum(250, pow(10,8))); + + + test_B(100, 20000, 10000); + + test_C(25, 500, 1000, 1500); + + test_D(100, 100, 1000000); + + + + cout << endl << "###### Scalar ######" << endl; + cout << "Timing\tGFLOPS\tGiByte/s" << endl; + cout << "------------------------------" << endl; + for (size_t i = 0; i < results_scalar.size(); ++i) + cout << results_scalar[i][0] << "\t" << results_scalar[i][1] << "\t" << results_scalar[i][2] << endl; + + cout << endl << "###### Sum ######" << endl; + cout << "Timing\tGFLOPS\tGiByte/s" << endl; + cout << "------------------------------" << endl; + for (size_t i = 0; i < results_sum.size(); ++i) + cout << results_sum[i][0] << "\t" << results_sum[i][1] << "\t" << results_sum[i][2] << endl; + + + + + // ###### Scalar ###### + // Timing GFLOPS GiByte/s + // ------------------------------ + // 3.4e-06 0.54 4.3 + // 4.6e-06 4 32 + // 1.6e-05 12 95 + // 0.0011 1.7 13 + // 0.0097 1.9 15 + // 0.075 2.5 20 + + + // ###### Sum ###### + // Timing GFLOPS GiByte/s + // ------------------------------ + // 5.5e-06 0.17 1.3 + // 5.4e-06 1.7 14 + // 1.5e-05 6.1 49 + // 0.00013 7.2 57 + // 0.0033 2.8 23 + // 0.032 2.9 23 + + + + + + // ######### NOT PARALLEL (from exercise sheet 2) ######### + // Timing GFLOPS GiByte/s + // ---------------------------------- + // (A) 0.038 2.5 20 + // (B) 0.13 2.9 23 + // (C) 0.44 3.2 25 + // (D) 0.19 1.5 12 + + + + return 0; +}

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 YgAgLuanJvs6#{*y>8L&w`I-3t0LKhIbpQYW literal 0 HcmV?d00001 diff --git a/ex1/ex1F_goldbachs_conjecture/main.cpp b/ex1/ex1F_goldbachs_conjecture/main.cpp new file mode 100644 index 0000000..e85654f --- /dev/null +++ b/ex1/ex1F_goldbachs_conjecture/main.cpp @@ -0,0 +1,37 @@ +#include "../utils/timing.h" +#include "goldbach.h" +#include +#include +using namespace std; + + +int main(int argc, char **argv) +{ + cout << "Check: 694 has "<< single_goldbach(694) << " decompositions." << endl << "----------------------------------------" << endl; + + + for(size_t n : {10000, 100000, 400000, 1000000, 2000000}) + { + tic(); + + auto goldbach_vector = count_goldbach(n); + + auto max_it = max_element(goldbach_vector.begin(), goldbach_vector.end()); + size_t max_number = distance(goldbach_vector.begin(), max_it); + + double time = toc(); + + cout << "The number " << max_number << " has " << *max_it << " decompositions. Duration: " << time << endl; + } + + /* + The number 9240 has 329 decompositions. Duration: 0.00572876 + The number 99330 has 2168 decompositions. Duration: 0.3342 + The number 390390 has 7094 decompositions. Duration: 4.23734 + The number 990990 has 15594 decompositions. Duration: 29.5817 + The number 1981980 has 27988 decompositions. Duration: 135.985 + */ + + + return 0; +} \ No newline at end of file diff --git a/ex1/ex1F_goldbachs_conjecture/mayer_primes.h b/ex1/ex1F_goldbachs_conjecture/mayer_primes.h new file mode 100644 index 0000000..6c6dc23 --- /dev/null +++ b/ex1/ex1F_goldbachs_conjecture/mayer_primes.h @@ -0,0 +1,73 @@ +#pragma once + +#include //memset +#include +//using namespace std; + +/** \brief Determines all prime numbers in interval [2, @p max]. + * + * The sieve of Eratosthenes is used. + * + * The implementation originates from Florian Mayer. + * + * \param[in] max end of interval for the prime number search. + * \return vector of prime numbers @f$2,3,5, ..., p<=max @f$. + * + * \copyright + * Copyright (c) 2008 Florian Mayer (adapted by Gundolf Haase 2018) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, + * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + */ +template +std::vector get_primes(T max) +{ + std::vector primes; + char *sieve; + sieve = new char[max / 8 + 1]; + // Fill sieve with 1 + memset(sieve, 0xFF, (max / 8 + 1) * sizeof(char)); + for (T x = 2; x <= max; x++) + { + if (sieve[x / 8] & (0x01 << (x % 8))) { + primes.push_back(x); + // Is prime. Mark multiplicates. + for (T j = 2 * x; j <= max; j += x) + { + sieve[j / 8] &= ~(0x01 << (j % 8)); + } + } + } + delete[] sieve; + return primes; +} + +//--------------------------------------------------------------- +//int main() // by Florian Mayer +//{g++ -O3 -std=c++14 -fopenmp main.cpp && ./a.out +// vector primes; +// primes = get_primes(10000000); +// // return 0; +// // Print out result. +// vector::iterator it; +// for(it=primes.begin(); it < primes.end(); it++) +// cout << *it << " "; +// +// cout << endl; +// return 0; +//} diff --git a/ex1/ex1G_dense_matrices_access/DenseMatrix.h b/ex1/ex1G_dense_matrices_access/DenseMatrix.h new file mode 100644 index 0000000..edf5160 --- /dev/null +++ b/ex1/ex1G_dense_matrices_access/DenseMatrix.h @@ -0,0 +1,71 @@ +#pragma once +#include "sigmoid.h" +#include +#include +using namespace std; + +class DenseMatrix +{ + private: + vector M; + size_t n; + size_t m; + + + public: + vector Mult(const vector &x) const + { + vector y(n,0); + for(size_t i = 0; i < n; ++i) // iterate row + { + for(size_t j = 0; j < m; ++j) // iterate column + { + y[i] += M[i*m + j]*x[j]; + } + } + return y; + } + + vector MultT(const vector &y) const + { + vector x(m,0); + for(size_t j = 0; j < m; ++j) // iterate column + { + for(size_t i = 0; i < n; ++i) // iterate row + { + x[j] += M[i*m + j]*y[i]; + } + } + return x; + } + + void Print() const + { + for(size_t i = 0; i < n; ++i) // iterate row + { + for(size_t j = 0; j < m; ++j) // iterate column + { + cout << M[i*m + j] << " "; + } + cout << endl; + } + cout << endl; + } + + + DenseMatrix(size_t n, size_t m) + { + this->n = n; + this->m = m; + M = vector(n*m); + size_t nm = max(n,m); + + for(size_t i = 0; i < n; ++i) // iterate row + { + for(size_t j = 0; j < m; ++j) // iterate column + { + M[i*m + j] = sigmoid(x_entry(i,nm))*sigmoid(x_entry(j,nm)); + } + } + } +}; \ No newline at end of file diff --git a/ex1/ex1G_dense_matrices_access/ProductMatrix.h b/ex1/ex1G_dense_matrices_access/ProductMatrix.h new file mode 100644 index 0000000..8f40764 --- /dev/null +++ b/ex1/ex1G_dense_matrices_access/ProductMatrix.h @@ -0,0 +1,52 @@ +#pragma once +#include +#include +#include +using namespace std; + +class ProductMatrix +{ + private: + vector u; + vector v; + size_t n; + size_t m; + + public: + vector Mult(const vector &x) const + { + vector y(n,0); + for(int i = 0; i < n; ++i) + { + for(int j = 0; j < m; ++j) + { + y[i] += v[j]*x[j]; + } + y[i] *= u[i]; + } + return y; + } + + vector MultT(const vector &y) const + { + vector x(m,0); + for(int j = 0; j < m; ++j) + { + for(int i = 0; i < n; ++i) + { + x[j] += y[i]*u[i]; + } + x[j] *= v[j]; + } + return x; + } + + ProductMatrix(const vector &u, const vector &v) + { + n = u.size(); + m = v.size(); + this->u = u; + this->v = v; + + } +}; \ No newline at end of file diff --git a/ex1/ex1G_dense_matrices_access/main b/ex1/ex1G_dense_matrices_access/main new file mode 100755 index 0000000000000000000000000000000000000000..1a31f75a34f68fd3aaadf786a1fa71b4d237f45a GIT binary patch literal 223648 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 literal 0 HcmV?d00001 diff --git a/ex1/ex1G_dense_matrices_access/main.cpp b/ex1/ex1G_dense_matrices_access/main.cpp new file mode 100644 index 0000000..fede0cc --- /dev/null +++ b/ex1/ex1G_dense_matrices_access/main.cpp @@ -0,0 +1,93 @@ +#include "../utils/timing.h" +#include "DenseMatrix.h" +#include "ProductMatrix.h" +#include + +int main() +{ + // b) ------------------------------------------------------------------------------------------------------ + DenseMatrix const M(5,3); + vector const u{{1, 2, 3}}; + vector f1 = M.Mult(u); + vector const v{{-1, 2, -3, 4, -5}}; + vector f2 = M.MultT(v); + + M.Print(); + + for(size_t i = 0; i < f1.size(); ++i) + cout << f1[i] << endl; + cout << endl; + + + for(size_t j = 0; j < f2.size(); ++j) + cout << f2[j] << " "; + cout << endl << "-------------------------------------------------" << endl; + + // c) ------------------------------------------------------------------------------------------------------ + size_t n = pow(10,3); + DenseMatrix const M_1(n,n); + vector x(n, 1.0); + + size_t n_loops = 100; + vector y_1; + vector y_2; + + double time_1 = 0; + double time_2 = 0; + + tic(); + for(int l = 0; l < n_loops; ++l) + y_1 = M_1.Mult(x); + time_1 += toc(); + + tic(); + for(int l = 0; l < n_loops; ++l) + y_2 = M_1.MultT(x); + time_2 += toc(); + + vector error_vec(n,0); + for(int i = 0; i < n; ++i) + error_vec[i] = abs(y_1[i] - y_2[i]); + double sup_error = *max_element(error_vec.begin(), error_vec.end()); + + + cout << "n = " << n << endl; + cout << "Average duration for Mult: " << time_1/n_loops << endl; + cout << "Average duration for MultT: " << time_2/n_loops << endl; + cout << "sup-error: " << sup_error << endl; + cout << "-------------------------------------------------" << endl; + + // d) ------------------------------------------------------------------------------------------------------ + vector u_M(n,0); + for(int i = 0; i < n; ++i) + u_M[i] = sigmoid(x_entry(i, n)); + + ProductMatrix const M_2(u_M, u_M); + + time_1 = 0; + time_2 = 0; + + tic(); + for(int l = 0; l < n_loops; ++l) + y_1 = M_2.Mult(x); + time_1 += toc(); + + tic(); + for(int l = 0; l < n_loops; ++l) + y_2 = M_2.MultT(x); + time_2 += toc(); + + for(int i = 0; i < n; ++i) + error_vec[i] = abs(y_1[i] - y_2[i]); + sup_error = *max_element(error_vec.begin(), error_vec.end()); + + + cout << "n = " << n << endl; + cout << "Average duration for Mult: " << time_1/n_loops << endl; + cout << "Average duration for MultT: " << time_2/n_loops << endl; + cout << "sup-error: " << sup_error << endl; + cout << "-------------------------------------------------" << endl; + + + return 0; +} diff --git a/ex1/ex1G_dense_matrices_access/sigmoid.h b/ex1/ex1G_dense_matrices_access/sigmoid.h new file mode 100644 index 0000000..9fd581f --- /dev/null +++ b/ex1/ex1G_dense_matrices_access/sigmoid.h @@ -0,0 +1,12 @@ +#pragma once +#include + +double sigmoid(double x) +{ + return 1./(1. + exp(-x)); +} + +double x_entry(size_t k, size_t nm) +{ + return (10.*k)/(nm - 1) - 5.; +} \ No newline at end of file diff --git a/ex2/ex2_C_main.py b/ex2/ex2_C_main.py new file mode 100644 index 0000000..d8cb768 --- /dev/null +++ b/ex2/ex2_C_main.py @@ -0,0 +1,18 @@ +import numpy as np +import matplotlib.pyplot as plt + +def u(x,p): + return (np.exp(p*x) - 1)/(np.exp(p) - 1) + +x = np.linspace(0, 1, 200) + + +plt.figure(figsize=(8, 5)) +for p in [ -3, -1, -0.5, 0.5, 2, 4]: + plt.plot(x, u(x, p), label="p ="+ str(p)) + +plt.xlabel('x') +plt.ylabel('u(x)') +plt.legend() +plt.grid(True) +plt.show() diff --git a/ex2/ex_2_Corrected.pdf b/ex2/ex_2_Corrected.pdf new file mode 100644 index 0000000000000000000000000000000000000000..9f2ed1af0fc4d5dc7c80ae807a7d070d46883479 GIT binary patch literal 475094 zcma&NQ`)ZQHi1%eHOXMwe}yUAEC>+t%Oj`u1M?y8b?Sk0LTMa>hxH zdp>hKGf3oxMQIplnW0IB&tvnUNk}AYTx<>Xoy=`*I01J0PG)qbjsO~Y8UT%vl7Og) z;-90Ct@WQT%ni(~%$?k&ja`hbc>W9kpt1j-`()+h1yqzo{@f`jpe!T~pm7uyQI!x9 z;juF^adj|vGX8VL(aFfx*@=hm cVlby4ZsJWH#KOg_illY)n0Q3M`0}E(wZaQgW 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%0D}~cnBj%S#td2!8u*EZ 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