diff --git a/init.sh b/init.sh index b29c35211aacf151cf3498aba6cc891f5051a606..8aeaace4e5002429065032208fed5870c875a170 100644 --- a/init.sh +++ b/init.sh @@ -51,6 +51,8 @@ export JARVIS_PROXY=https://gh.ddlc.top/https://github.com export DOWNLOAD_TOOL=${CUR_PATH}/package/common/download.sh export CHECK_DEPS=${CUR_PATH}/package/common/check_deps.sh export CHECK_ROOT=${CUR_PATH}/package/common/check_root.sh +export PATCH_TOOL=${CUR_PATH}/package/common/applypatch.sh +export RUN_TOOL=${CUR_PATH}/package/common/run_cmd.sh #Install modules if ! type module >/dev/null 2>&1;then diff --git a/package/common/applypatch.sh b/package/common/applypatch.sh new file mode 100644 index 0000000000000000000000000000000000000000..1cd4e73c76eeee74ca49128c9df0b0d80f2a56dc --- /dev/null +++ b/package/common/applypatch.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +# 定义补丁文件 +PATCH_FILE=$1 + +# 尝试反向测试补丁是否已经应用 +if patch -p0 -R -s --dry-run < "$PATCH_FILE" > /dev/null 2>&1; then + echo "补丁已经应用,跳过。" +else + echo "正在应用补丁..." + patch -p0 < "$PATCH_FILE" +fi diff --git a/package/common/run_cmd.sh b/package/common/run_cmd.sh new file mode 100644 index 0000000000000000000000000000000000000000..224ae528dfed45b2e3d893f8507a7093d970c9c0 --- /dev/null +++ b/package/common/run_cmd.sh @@ -0,0 +1,9 @@ +#!/bin/bash +command_name=$1 +command_to_run=$2 +LOG_FILE=$3 +echo "Running: $command_name" | tee -a "$LOG_FILE" +# 使用 time 统计运行时间 +echo "=== Time Statistics ===" | tee -a "$LOG_FILE" +( time -p eval $command_to_run ) 2>&1 | tee -a "$LOG_FILE" +echo "=========================" | tee -a "$LOG_FILE" diff --git a/package/libdivsufsort/.keep b/package/libdivsufsort/.keep new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/package/libdivsufsort/2.0.1/.keep b/package/libdivsufsort/2.0.1/.keep new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/package/libdivsufsort/2.0.1/install.sh b/package/libdivsufsort/2.0.1/install.sh new file mode 100644 index 0000000000000000000000000000000000000000..fa2595b2eea46585d7a8a07c9a65f90b8ff7c13b --- /dev/null +++ b/package/libdivsufsort/2.0.1/install.sh @@ -0,0 +1,14 @@ +#!/bin/bash +set -x +set -e +. ${DOWNLOAD_TOOL} -u https://github.com/y-256/libdivsufsort/archive/refs/tags/2.0.1.tar.gz -f libdivsufsort-2.0.1.tar.gz +cd ${JARVIS_TMP} +tar xvf ${JARVIS_DOWNLOAD}/libdivsufsort-2.0.1.tar.gz +cd libdivsufsort-2.0.1 +sed -i "47s/OFF/ON/g" CMakeLists.txt +sed -i "48s/OFF/ON/g" CMakeLists.txt +mkdir build +cd build +cmake .. -DCMAKE_INSTALL_PREFIX=$1 +make -j +make install \ No newline at end of file diff --git a/templates/bwa/0.7.17/data.bwa.arm.cpu.config b/templates/bwa/0.7.17/data.bwa.arm.cpu.config index 414a291c3fe2758150a7476053ec61b4c88516b2..764bbf80ec0f8b4a77821a1de8a838f1ab1a80e4 100644 --- a/templates/bwa/0.7.17/data.bwa.arm.cpu.config +++ b/templates/bwa/0.7.17/data.bwa.arm.cpu.config @@ -3,47 +3,53 @@ [DOWNLOAD] bwa/0.7.17 https://sourceforge.net/projects/bio-bwa/files/bwa-0.7.17.tar.bz2 -SSE2NONE.h/1.0 https://raw.githubusercontent.com/jratcliff63367/sse2neon/refs/heads/master/SSE2NEON.h +SSE2NEON/1.0 https://raw.githubusercontent.com/jratcliff63367/sse2neon/refs/heads/master/SSE2NEON.h case1 https://ftp.sra.ebi.ac.uk/vol1/fastq/ERR104/008/ERR1044518/ERR1044518_1.fastq.gz case2 https://ftp.sra.ebi.ac.uk/vol1/fastq/ERR104/008/ERR1044518/ERR1044518_2.fastq.gz case3 https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/000/001/405/GCA_000001405.15_GRCh38/seqs_for_alignment_pipelines.ucsc_ids/GCA_000001405.15_GRCh38_full_analysis_set.fna.gz + [DEPENDENCY] -set -e +set -e set -x -module purge -./jarvis -install package/hpckit/2024.12.30 any -module use software/utils/hpckit/2024.12.30/HPCKit/latest/modulefiles -module add bisheng/compiler4.1.0/bishengmodule +./jarvis -install hpckit/24.12.30 any +module use software/utils/HPCKit/latest/modulefiles +module load bisheng/compiler4.1.0/bishengmodule +./jarvis -install libdivsufsort/2.0.1 clang +export PKG_CONFIG_PATH=$LIBDIVSUFSORT_PATH/lib/pkgconfig:$PKG_CONFIG_PATH + +BWA_SRC=bwa-0.7.17 +if [ ! -d "$BWA_SRC" ];then + tar xf $JARVIS_DOWNLOAD/$BWA_SRC.tar.bz2 +fi [ENV] -module purge -module use software/utils/hpckit/2024.12.30/HPCKit/latest/modulefiles -module add bisheng/compiler4.1.0/bishengmodule -export PATH=$JARVIS_ROOT/software/apps/bisheng/bwa/0.7.17:$PATH -mkdir -p ${JARVIS_ROOT}/case +#!/bin/bash +export BWA_DIR=$JARVIS_ROOT/bwa-0.7.17 +module use software/utils/HPCKit/latest/modulefiles +module use software/moduledeps/bisheng4.1.0/ +module load bisheng/compiler4.1.0/bishengmodule +module load libdivsufsort/2.0.1 +export PKG_CONFIG_PATH=$LIBDIVSUFSORT_PATH/lib/pkgconfig:$PKG_CONFIG_PATH +export PATH=$JARVIS_ROOT/bwa-0.7.17:$PATH [APP] -app_name = bwa -build_dir = ${JARVIS_ROOT} +app_name = BWA +build_dir = ${BWA_DIR} binary_dir = -case_dir = ${JARVIS_ROOT}/case +case_dir = ./workload/bwa [BUILD] -cd ${JARVIS_TMP} -rm -rf bwa-0.7.17 -tar -xvf ${JARVIS_DOWNLOAD}/bwa-0.7.17.tar.bz2 -cd bwa-0.7.17 -cp ${JARVIS_DOWNLOAD}/SSE2NEON.h . +cp -rf $JARVIS_DOWNLOAD/SSE2NEON.h ./ +sed -i '29c #include "SSE2NEON.h"' ksw.c sed -i "1s/gcc/clang/g" Makefile -sed -i "3s/$/ -Xlinker -zmuldefs/g" Makefile -sed -i "14s%$%-I.%g" Makefile -sed -i "29s///g" ksw.c +sed -i "/CFLAGS=/s/-g -Wall -Wno-unused-function -O2/-Wall -Wno-unused-function -O3 -ffast-math -fcommon -fvectorize -funroll-loops -march=armv8-a -mcpu=tsv110 -fuse-ld=lld -flto=full/g" Makefile +sed -i "/INCLUDES=/s%$%-I$LIBDIVSUFSORT_PATH/include -I.%g" Makefile +sed -i "/LIBS=/s%$% -L$LIBDIVSUFSORT_PATH/lib -ldivsufsort64%g" Makefile make -rm -rf $JARVIS_ROOT/software/apps/bisheng/bwa/0.7.17 -mkdir -p $JARVIS_ROOT/software/apps/bisheng/bwa/0.7.17 -cp -r *.pl bwa $JARVIS_ROOT/software/apps/bisheng/bwa/0.7.17 -rm -rf ${JARVIS_TMP}/bwa-0.7.17 + +[CLEAN] +./clean -a [RUN] run = @@ -51,14 +57,16 @@ binary = nodes = 1 [BATCH] -#定义日志文件 +# 定义日志文件 LOG_FILE="bwa-performance.log" -#清空日志文件 +# 清空日志文件 > "$LOG_FILE" -#执行命令并统计性能 -#待补充 +# 执行每个命令并统计性能 +#$RUN_TOOL "BWA Index" "bwa index -a bwtsw hs38DH.fasta" $LOG_FILE +$RUN_TOOL "BWA mem" "bwa mem -t 128 hs38DH.fasta ERR1044518_1.fastq ERR1044518_2.fastq > bwa.sam" $LOG_FILE +echo "All commands executed. Performance log saved to $LOG_FILE" [JOB] #!/bin/sh @@ -66,20 +74,24 @@ LOG_FILE="bwa-performance.log" #DSUB --mpi hmpi #DSUB -q default #DSUB -N 1 -#DSUB -R cpu =128 -#DSUB -oo bwa_$J.out -#DSUB -eo bwa.$J.err - +#DSUB -R cpu=608 +#DSUB -oo bwa.%J.out +#DSUB -eo bwa.%J.err #生成算例 -cd ${JARVIS_ROOT}/case if [ ! -f "ERR1044518_1.fastq" ];then - gzip -d ${JARVIS_DOWNLOAD}/ERR1044518_1.fastq.gz - gzip -d ${JARVIS_DOWNLOAD}/ERR1044518_1.fastq.gz - gzip -d ${JARVIS_DOWNLOAD}/GCA_000001405.15_GRCh38_full_analysis_set.fna.gz - mv GCA_000001405.15_GRCh38_full_analysis_set.fna hs38DH.fasta + mkdir -p case + gzip -d $JARVIS_DOWNLOAD/ERR1044518_1.fastq.gz + gzip -d $JARVIS_DOWNLOAD/ERR1044518_2.fastq.gz + gzip -d $JARVIS_DOWNLOAD/GCA_000001405.15_GRCh38_full_analysis_set.fna.gz + mv GCA_000001405.15_GRCh38_full_analysis_set.fna hs38DH.fasta fi +# 定义日志文件 +LOG_FILE="bwa-performance.log" + +# 清空日志文件 +> "$LOG_FILE" -#运行 -#待补充 -#bwa index -a bwtsw hs38DH.fasta -#bwa mem -t 128 hs38DH.fasta ERR1044518_1.fastq ERR1044518_2.fastq > bwa.sam 2>&1 |tee bwa_log +# 执行每个命令并统计性能 +#$RUN_TOOL "BWA Index" "bwa index -a bwtsw hs38DH.fasta" +$RUN_TOOL "BWA mem" "bwa mem -t 128 hs38DH.fasta ERR1044518_1.fastq ERR1044518_2.fastq > bwa.sam" +echo "All commands executed. Performance log saved to $LOG_FILE" diff --git a/templates/top50/cp2k/8.2/cp2k.8.2.arm.config b/templates/top50/cp2k/8.2/cp2k.8.2.arm.config index 689bb43162d02844157308c0f011820bfea51132..377475949a718558e48c51be7709971ba73abbd3 100644 --- a/templates/top50/cp2k/8.2/cp2k.8.2.arm.config +++ b/templates/top50/cp2k/8.2/cp2k.8.2.arm.config @@ -86,7 +86,8 @@ cp ${JARVIS_TPL}/top50/cp2k/8.2/$BUILD_TYPE.psmp ./ sed -i "9s%path1%${HMPI_PATH}%g" $BUILD_TYPE.psmp sed -i "10s%path2%${BISHENG_PATH}%g" $BUILD_TYPE.psmp cd .. -make -j ARCH=$BUILD_TYPE VERSION=psmp +#make -j ARCH=$BUILD_TYPE VERSION=psmp +mkdir -p $1/bin cp -rf ${JARVIS_DEV}/cp2k-8.2/exe/$BUILD_TYPE/* $1/bin [CLEAN]