Skip to content

Commit f5bcfe3

Browse files
Add 64-bit ID build to the Ubuntu matrix, publish/upload it, document it
Adds an avx2_int64 leg to build_ubuntu (configures with -DMMSEQS_INT64_IDS=1, drops -DENABLE_WERROR until the 64-bit build is vetted warning-clean), publishes it as mmseqs-linux-AVX2-64bit via a per-leg ARTIFACT name (no collision with the 32-bit AVX2 build), and wires upload_artifacts to sign + POST mmseqs-linux-avx2-64bit.tar.gz to mmseqs.com. README lists the new download.
1 parent 368e4be commit f5bcfe3

2 files changed

Lines changed: 35 additions & 38 deletions

File tree

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@ When compiling from source, pass `-DMMSEQS_INT64_IDS=1` to CMake to build MMseqs
3737
wget https://mmseqs.com/latest/mmseqs-linux-gpu.tar.gz; tar xvfz mmseqs-linux-gpu.tar.gz; export PATH=$(pwd)/mmseqs/bin/:$PATH
3838
# static build with AVX2 (fastest)
3939
wget https://mmseqs.com/latest/mmseqs-linux-avx2.tar.gz; tar xvfz mmseqs-linux-avx2.tar.gz; export PATH=$(pwd)/mmseqs/bin/:$PATH
40+
# static build with AVX2 (fastest) with > 2^32 sequences support (>4B)
41+
wget https://mmseqs.com/latest/mmseqs-linux-avx2-64bit.tar.gz; tar xvfz mmseqs-linux-avx2-64bit.tar.gz; export PATH=$(pwd)/mmseqs/bin/:$PATH
4042
# static build with SSE4.1
4143
wget https://mmseqs.com/latest/mmseqs-linux-sse41.tar.gz; tar xvfz mmseqs-linux-sse41.tar.gz; export PATH=$(pwd)/mmseqs/bin/:$PATH
4244
# static build with SSE2 (slowest, for very old systems)

azure-pipelines.yml

Lines changed: 33 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -74,16 +74,26 @@ jobs:
7474
STATIC: 1
7575
MPI: 0
7676
BUILD_TYPE: Release
77+
ARTIFACT: 'mmseqs-linux-AVX2'
7778
sse41:
7879
SIMD: 'SSE4_1'
7980
STATIC: 1
8081
MPI: 0
8182
BUILD_TYPE: Release
83+
ARTIFACT: 'mmseqs-linux-SSE4_1'
8284
sse2:
8385
SIMD: 'SSE2'
8486
STATIC: 1
8587
MPI: 0
8688
BUILD_TYPE: Release
89+
ARTIFACT: 'mmseqs-linux-SSE2'
90+
avx2_int64:
91+
SIMD: 'AVX2'
92+
STATIC: 1
93+
MPI: 0
94+
BUILD_TYPE: Release
95+
INT64: 1
96+
ARTIFACT: 'mmseqs-linux-AVX2-64bit'
8797
avx2_mpi:
8898
SIMD: 'AVX2'
8999
STATIC: 0
@@ -112,14 +122,20 @@ jobs:
112122
- script: |
113123
mkdir build && cd build
114124
export CC=gcc-11 ; export CXX=g++-11
125+
EXTRA=""
126+
WERROR="-DENABLE_WERROR=1"
127+
if [ "${INT64}" = "1" ]; then
128+
EXTRA="-DMMSEQS_INT64_IDS=1"
129+
WERROR="" # 64-bit-ID build not yet vetted warning-clean under -Werror
130+
fi
115131
if [ "${STATIC}" -eq "1" ]; then
116132
LIBGOMP=/usr/lib/gcc/x86_64-linux-gnu/11
117133
cmake -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DFORCE_STATIC_DEPS=1 -DHAVE_TESTS=1 \
118134
-DOpenMP_C_FLAGS="-fopenmp -I${LIBGOMP}" -DOpenMP_C_LIB_NAMES=gomp -DOpenMP_CXX_FLAGS="-fopenmp -I${LIBGOMP}" -DOpenMP_CXX_LIB_NAMES=gomp -DOpenMP_gomp_LIBRARY=${LIBGOMP}/libgomp.a \
119-
-DENABLE_WERROR=1 -DHAVE_${SIMD}=1 -DHAVE_MPI=${MPI} ..
135+
${WERROR} ${EXTRA} -DHAVE_${SIMD}=1 -DHAVE_MPI=${MPI} ..
120136
else
121137
cmake -DHAVE_SANITIZER=1 -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DHAVE_TESTS=1 \
122-
-DENABLE_WERROR=1 -DHAVE_${SIMD}=1 -DHAVE_MPI=${MPI} ..
138+
${WERROR} ${EXTRA} -DHAVE_${SIMD}=1 -DHAVE_MPI=${MPI} ..
123139
fi
124140
125141
make -j $(nproc --all) VERBOSE=1
@@ -133,42 +149,7 @@ jobs:
133149
condition: eq(variables['STATIC'], 1)
134150
inputs:
135151
targetPath: $(Build.SourcesDirectory)/build/src/mmseqs
136-
artifactName: mmseqs-linux-$(SIMD)
137-
138-
- job: build_ubuntu_int64
139-
displayName: Ubuntu MMseqs2 64-bit IDs
140-
pool:
141-
vmImage: 'Ubuntu-22.04'
142-
timeoutInMinutes: 120
143-
steps:
144-
- checkout: self
145-
submodules: true
146-
- script: |
147-
sudo apt-get update
148-
sudo apt-get install -y gcc-11 g++-11 libgcc-11-dev rustc cargo build-essential
149-
retryCountOnTaskFailure: "2"
150-
displayName: Install newer G++
151-
- script: |
152-
mkdir build && cd build
153-
export CC=gcc-11 ; export CXX=g++-11
154-
LIBGOMP=/usr/lib/gcc/x86_64-linux-gnu/11
155-
# NOTE: -DENABLE_WERROR is intentionally omitted; the 64-bit-ID build has
156-
# not yet been vetted warning-clean under -Werror. Add it once it is.
157-
cmake -DCMAKE_BUILD_TYPE=Release -DFORCE_STATIC_DEPS=1 -DHAVE_TESTS=1 \
158-
-DMMSEQS_INT64_IDS=1 \
159-
-DOpenMP_C_FLAGS="-fopenmp -I${LIBGOMP}" -DOpenMP_C_LIB_NAMES=gomp -DOpenMP_CXX_FLAGS="-fopenmp -I${LIBGOMP}" -DOpenMP_CXX_LIB_NAMES=gomp -DOpenMP_gomp_LIBRARY=${LIBGOMP}/libgomp.a \
160-
-DHAVE_AVX2=1 -DHAVE_MPI=0 ..
161-
make -j $(nproc --all) VERBOSE=1
162-
displayName: Build MMseqs2 (64-bit IDs)
163-
- script: |
164-
export TTY=0
165-
${BUILD_SOURCESDIRECTORY}/util/regression/run_regression.sh ${BUILD_SOURCESDIRECTORY}/build/src/mmseqs ${BUILD_SOURCESDIRECTORY}/regression
166-
displayName: Run Regression Suite
167-
condition: eq(variables['regression'], 1)
168-
- task: PublishPipelineArtifact@0
169-
inputs:
170-
targetPath: $(Build.SourcesDirectory)/build/src/mmseqs
171-
artifactName: mmseqs-linux-avx2-64bit
152+
artifactName: $(ARTIFACT)
172153

173154
- job: build_ubuntu_gpu
174155
displayName: Ubuntu MMseqs2 GPU
@@ -461,6 +442,18 @@ jobs:
461442
archiveFile: $(Build.SourcesDirectory)/mmseqs-linux-arm64.tar.gz
462443
includeRootFolder: true
463444
archiveType: tar
445+
- task: DownloadPipelineArtifact@1
446+
inputs:
447+
artifactName: mmseqs-linux-AVX2-64bit
448+
targetPath: $(Build.SourcesDirectory)/mmseqs/bin
449+
- script:
450+
chmod +x "${BUILD_SOURCESDIRECTORY}/mmseqs/bin/mmseqs"
451+
- task: ArchiveFiles@2
452+
inputs:
453+
rootFolderOrFile: $(Build.SourcesDirectory)/mmseqs
454+
archiveFile: $(Build.SourcesDirectory)/mmseqs-linux-avx2-64bit.tar.gz
455+
includeRootFolder: true
456+
archiveType: tar
464457
- script:
465458
rm "${BUILD_SOURCESDIRECTORY}/mmseqs/bin/mmseqs"
466459
# - task: DownloadPipelineArtifact@1
@@ -496,6 +489,7 @@ jobs:
496489
mmseqs-linux-sse2.tar.gz \
497490
mmseqs-linux-sse41.tar.gz \
498491
mmseqs-linux-avx2.tar.gz \
492+
mmseqs-linux-avx2-64bit.tar.gz \
499493
mmseqs-linux-gpu.tar.gz \
500494
mmseqs-linux-gpu-cuda13.tar.gz \
501495
mmseqs-linux-gpu-arm64.tar.gz \
@@ -507,6 +501,7 @@ jobs:
507501
-F file[]=@mmseqs-linux-sse2.tar.gz -F signature[]=@mmseqs-linux-sse2.tar.gz.sig \
508502
-F file[]=@mmseqs-linux-sse41.tar.gz -F signature[]=@mmseqs-linux-sse41.tar.gz.sig \
509503
-F file[]=@mmseqs-linux-avx2.tar.gz -F signature[]=@mmseqs-linux-avx2.tar.gz.sig \
504+
-F file[]=@mmseqs-linux-avx2-64bit.tar.gz -F signature[]=@mmseqs-linux-avx2-64bit.tar.gz.sig \
510505
-F file[]=@mmseqs-linux-gpu.tar.gz -F signature[]=@mmseqs-linux-gpu.tar.gz.sig \
511506
-F file[]=@mmseqs-linux-gpu-cuda13.tar.gz -F signature[]=@mmseqs-linux-gpu-cuda13.tar.gz.sig \
512507
-F file[]=@mmseqs-linux-gpu-arm64.tar.gz -F signature[]=@mmseqs-linux-gpu-arm64.tar.gz.sig \

0 commit comments

Comments
 (0)