From d36b4ad2e99f0178a4f2b75269e3fac20346f87c Mon Sep 17 00:00:00 2001 From: Mikael Salson Date: Thu, 30 Apr 2020 20:44:40 +0200 Subject: [PATCH] .gitlab-ci: Add job to provide CPU/Memory profiling Fix #918 --- .gitlab-ci.yml | 1 + algo/.gitlab-ci.yml | 28 ++++++++++++++++++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 algo/.gitlab-ci.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index cf2935f17..4ab301eaa 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -56,6 +56,7 @@ test_germlines: include: - local: '/doc/.gitlab-ci.yml' - local: 'algo/.gitlab-ci-compilers.yml' # Stage multiple_tests + - local: 'algo/.gitlab-ci.yml' # Vidjil-algo pipelines # Algorithm diff --git a/algo/.gitlab-ci.yml b/algo/.gitlab-ci.yml new file mode 100644 index 000000000..fe0cddc50 --- /dev/null +++ b/algo/.gitlab-ci.yml @@ -0,0 +1,28 @@ +profiling_algo: + stage: benchmark + image: gcc:9 + before_script: + - apt-get update + - apt-get install -y wget python3 tar libgoogle-perftools4 libgoogle-perftools-dev google-perftools graphviz + script: + - make demo data germline + - make DEBUG="-g" + - LIB_PROFILE=$(find /usr/lib -name libprofiler.so) + - CPUPROFILE=vidjil.cpu LD_PRELOAD="$LIB_PROFILE" ./vidjil-algo -g germline -r 1 demo/LIL-L4.fastq.gz + - LIB_MALLOC=$(find /usr/lib -name libtcmalloc.so) + - HEAPPROFILE=vidjil.mem LD_PRELOAD="$LIB_MALLOC" ./vidjil-algo -g germline -r 1 demo/LIL-L4.fastq.gz + + - google-pprof --lines --text vidjil-algo vidjil.cpu + - echo "###########################################" + - google-pprof --lines --text vidjil-algo vidjil.mem.* + - google-pprof --lines --pdf vidjil-algo vidjil.cpu > vidjil-cpu.pdf + - google-pprof --lines --pdf vidjil-algo vidjil.mem.* > vidjil-mem.pdf + artifacts: + paths: + - vidjil-*.pdf + - vidjil.cpu + - vidjil.mem.* + when: manual + tags: + - cidocker + -- GitLab