From a13a0424925846d930451263e72b37ff6305d692 Mon Sep 17 00:00:00 2001 From: NunoSempere Date: Sat, 3 Jun 2023 01:29:16 -0600 Subject: [PATCH] tweak: don't use inline functions, add profiling --- C/makefile | 20 ++++++++++++++++++++ C/out/samples | Bin 22272 -> 22504 bytes C/samples.c | 8 ++++---- 3 files changed, 24 insertions(+), 4 deletions(-) diff --git a/C/makefile b/C/makefile index 5e5029b4..3fe983c0 100644 --- a/C/makefile +++ b/C/makefile @@ -47,6 +47,8 @@ multi: OMP_NUM_THREADS=8 ./$(OUTPUT) && echo OMP_NUM_THREADS=16 ./$(OUTPUT) && echo +## Timing + time-linux: @echo "Requires /bin/time, found on GNU/Linux systems" && echo @@ -77,6 +79,24 @@ time-linux-simple: OMP_NUM_THREADS=8 /bin/time -f "Time: %es" ./$(OUTPUT) && echo OMP_NUM_THREADS=16 /bin/time -f "Time: %es" ./$(OUTPUT) && echo +## Profiling + +profile-linux: + echo "Requires perf, which depends on the kernel, and might be in linux-tools package or similar" + $(CC) $(SRC) $(OPENMP) $(MATH) -o $(OUTPUT) + # ./$(OUTPUT) + # gprof: + # gprof $(OUTPUT) gmon.out > analysis.txt + # rm gmon.out + # vim analysis.txt + # rm analysis.txt + # perf: + perf record $(OUTPUT) + perf report + rm perf.data + + +## Install debian-install-dependencies: sudo apt-get install libomp-dev diff --git a/C/out/samples b/C/out/samples index c234d999a8428f1bc8a1491d49fdb981ed924cad..18ec0585c39fb8ec2ef814be92de52e7448b2781 100755 GIT binary patch literal 22504 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 diff --git a/C/samples.c b/C/samples.c index 1a76c7c5..a38f3532 100644 --- a/C/samples.c +++ b/C/samples.c @@ -94,22 +94,22 @@ float ur_normal(unsigned int* seed) return z; } -inline float random_uniform(float from, float to, unsigned int* seed) +float random_uniform(float from, float to, unsigned int* seed) { return ((float)rand_r(seed) / (float)RAND_MAX) * (to - from) + from; } -inline float random_normal(float mean, float sigma, unsigned int* seed) +float random_normal(float mean, float sigma, unsigned int* seed) { return (mean + sigma * ur_normal(seed)); } -inline float random_lognormal(float logmean, float logsigma, unsigned int* seed) +float random_lognormal(float logmean, float logsigma, unsigned int* seed) { return expf(random_normal(logmean, logsigma, seed)); } -inline float random_to(float low, float high, unsigned int* seed) +float random_to(float low, float high, unsigned int* seed) { const float NORMAL95CONFIDENCE = 1.6448536269514722; float loglow = logf(low);