mkdir ${LIKWID_RUNNING_DIR}

export LIK_OUTPUT=${LIKWID_RUNNING_DIR}/likwid_performance_out.txt
export THREAD_COUNT=$(($(lscpu --all --parse=CPU,SOCKET,CORE | grep -v '^#' | tail -1 | grep -o -E '^.{2,3},' --max-count=1 | rev | cut -c 2- | rev) + 1))
export STREAM_SIZE=$((10 * ${THREAD_COUNT}))kB
echo 'Scalar MFlops/s' > ${LIK_OUTPUT}
likwid-bench -t peakflops -W N:${STREAM_SIZE}:${THREAD_COUNT} | grep 'MFlops/s:' >> ${LIK_OUTPUT}
echo 'SSE MFlops/s' >> ${LIK_OUTPUT}
likwid-bench -t peakflops_sse -W N:${STREAM_SIZE}:${THREAD_COUNT} | grep 'MFlops/s:' >> ${LIK_OUTPUT}
echo 'AVX MFlops/s' >> ${LIK_OUTPUT}
likwid-bench -t peakflops_avx -W N:${STREAM_SIZE}:${THREAD_COUNT} | grep 'MFlops/s:' >> ${LIK_OUTPUT}
echo 'Scalar MByte/s' >> ${LIK_OUTPUT}
export PERF=$(grep -oP 'MFlops/s:\s*\K\d+' ${LIK_OUTPUT} | sort -n | head -n 1)

likwid-bench -t load -W N:8GB:${THREAD_COUNT} | grep 'MByte/s:' >> ${LIK_OUTPUT}
echo 'SSE MByte/s' >> ${LIK_OUTPUT}
likwid-bench -t load_sse -W N:8GB:${THREAD_COUNT} | grep 'MByte/s:' >> ${LIK_OUTPUT}
echo 'AVX MByte/s' >> ${LIK_OUTPUT}
likwid-bench -t load_avx -W N:8GB:${THREAD_COUNT} | grep 'MByte/s:' >> ${LIK_OUTPUT}
export BAND=$(grep -oP 'MByte/s:\s*\K\d+' ${LIK_OUTPUT} | sort -n | head -n 1)
# *=*
sleep 1

echo 'Plotting Likwid output as series'
${PYTHON_INSTANCE} -c "import PyProfQueue.profilers.likwid as lik; lik.plot_roof_timeseries(likwid_file='${LIKWID_RUNNING_DIR}/likwid_output.txt', name_prefix='${LIKWID_RUNNING_DIR}/Likwid', maxperf=${PERF}, maxband=${BAND});"
${PYTHON_INSTANCE} -c "import PyProfQueue.profilers.likwid as lik; lik.plot_roof_timeseries(likwid_file='${LIKWID_RUNNING_DIR}/likwid_output.txt', name_prefix='${LIKWID_RUNNING_DIR}/Likwid_Log', maxperf=${PERF}, maxband=${BAND}, log_plot=True);"