diff --git a/.travis.yml b/.travis.yml index cc3659fa..d4575976 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,83 +1,69 @@ language: minimal -env: +os: linux +dist: xenial +addons: + apt: + packages: &default_packages + - cmake + - make + - zlib1g-dev + - libbz2-dev + - vim-common + - shellcheck matrix: include: - - os: linux - dist: trusty - addons: + - addons: apt: packages: - - cmake - - ninja-build - - clang-3.6 + - *default_packages + - clang-5.0 - libc++-dev - - zlib1g-dev - - libbz2-dev - - vim-common - env: CC=clang-3.6 CXX=clang++-3.6 - - os: linux - dist: trusty - addons: + - libomp-dev + env: CC=clang-5.0 CXX=clang++-5.0 + - addons: apt: sources: - ubuntu-toolchain-r-test - - llvm-toolchain-trusty-7 + - sourceline: 'deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-10 main' + key_url: 'https://apt.llvm.org/llvm-snapshot.gpg.key' packages: - - cmake - - ninja-build - - clang-7 - - libc++-7-dev - - libc++abi-7-dev - - zlib1g-dev - - libbz2-dev - - vim-common - env: CC=clang-7 CXX=clang++-7 - - os: linux - dist: trusty - addons: + - *default_packages + - clang-10 + - libc++-10-dev + - libc++abi-10-dev + - libomp-10-dev + env: CC=clang-10 CXX=clang++-10 + - addons: apt: + sources: + - ubuntu-toolchain-r-test packages: - - cmake - - ninja-build - - gcc-4.8 - - g++-4.8 - - zlib1g-dev - - libbz2-dev - - vim-common - env: CC=gcc-4.8 CXX=g++-4.8 - - os: linux - dist: trusty - addons: + - *default_packages + - gcc-4.9 + - g++-4.9 + env: CC=gcc-4.9 CXX=g++-4.9 + - addons: apt: sources: - ubuntu-toolchain-r-test packages: - - cmake - - ninja-build - - gcc-8 - - g++-8 - - zlib1g-dev - - libbz2-dev - - vim-common - env: CC=gcc-8 CXX=g++-8 - - os: linux - dist: trusty - addons: + - *default_packages + - gcc-9 + - g++-9 + env: CC=gcc-9 CXX=g++-9 + - addons: apt: sources: - ubuntu-toolchain-r-test packages: - - cmake - - ninja-build - - gcc-8 - - g++-8 - - zlib1g-dev - - libbz2-dev - - vim-common - - libopenmpi-dev - env: MPI=1 CC=gcc-8 CXX=g++-8 + - *default_packages + - gcc-9 + - g++-9 + - mpi-default-dev + - mpi-default-bin + env: MPI=1 CC=gcc-9 CXX=g++-9 - os: osx osx_image: xcode10.1 addons: @@ -98,8 +84,8 @@ script: if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then \ if [[ -n "$MPI" ]]; then MPI=1; else MPI=0; fi; \ mkdir build; cd build; \ - cmake -G Ninja -DHAVE_MPI="$MPI" -DHAVE_SSE4_1=1 -DREQUIRE_OPENMP=0 .. \ - || exit 1; ninja || exit 1; \ + cmake -DHAVE_MPI="$MPI" -DHAVE_SSE4_1=1 -DREQUIRE_OPENMP=0 ..; + make -j $(nproc --all); \ elif [[ "$TRAVIS_OS_NAME" == "osx" ]]; then \ ./lib/mmseqs/util/build_osx.sh . build plass || exit 1; \ else \ diff --git a/Dockerfile b/Dockerfile index 475b5183..837c810c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -6,29 +6,34 @@ RUN apt-get update && apt-get install -y \ WORKDIR /opt/source ADD . . -WORKDIR /opt/source/build_sse +WORKDIR /opt/source/build_sse2 +RUN cmake -DHAVE_MPI=0 -DHAVE_TESTS=0 -DHAVE_SSE2=1 -DCMAKE_BUILD_TYPE=Release .. +RUN make -j $(nproc --all) + +WORKDIR /opt/source/build_sse41 RUN cmake -DHAVE_MPI=0 -DHAVE_TESTS=0 -DHAVE_SSE4_1=1 -DCMAKE_BUILD_TYPE=Release .. RUN make -j $(nproc --all) -WORKDIR /opt/source/build_avx +WORKDIR /opt/source/build_avx2 RUN cmake -DHAVE_MPI=0 -DHAVE_TESTS=0 -DHAVE_AVX2=1 -DCMAKE_BUILD_TYPE=Release .. RUN make -j $(nproc --all) FROM debian:stable-slim MAINTAINER Milot Mirdita RUN apt-get update && apt-get install -y \ - gawk bash grep libstdc++6 libgomp1 zlib1g libbz2-1.0 \ + gawk bash grep libstdc++6 libgomp1 libatomic1 zlib1g libbz2-1.0 wget tar \ && rm -rf /var/lib/apt/lists/* -COPY --from=builder /opt/source/build_sse/src/plass /usr/local/bin/plass_sse42 -COPY --from=builder /opt/source/build_avx/src/plass /usr/local/bin/plass_avx2 -RUN echo '#!/bin/bash\n\ -if $(grep -q -E "^flags.+avx2" /proc/cpuinfo); then\n\ - exec /usr/local/bin/plass_avx2 "$@"\n\ -else\n\ - exec /usr/local/bin/plass_sse42 "$@"\n\ -fi'\ ->> /usr/local/bin/plass +COPY --from=builder /opt/source/build_sse2/src/plass /usr/local/bin/plass_sse2 +COPY --from=builder /opt/source/build_sse41/src/plass /usr/local/bin/plass_sse41 +COPY --from=builder /opt/source/build_avx2/src/plass /usr/local/bin/plass_avx2 +RUN echo '#!/bin/sh\n\ +FLAGS="$(grep -m 1 "^flags" /proc/cpuinfo)"\n\ +case "${FLAGS}" in\n\ + *avx2*) exec /usr/local/bin/plass_avx2 "$@" ;;\n\ + *sse4_1*) exec /usr/local/bin/plass_sse41 "$@" ;;\n\ + *) exec /usr/local/bin/plass_sse2 "$@" ;;\n\ +fi' >> /usr/local/bin/plass RUN chmod +x /usr/local/bin/plass VOLUME ["/app"] diff --git a/lib/mmseqs b/lib/mmseqs index 98c37f3c..b15e95a1 160000 --- a/lib/mmseqs +++ b/lib/mmseqs @@ -1 +1 @@ -Subproject commit 98c37f3c32b222632ada6011504380e91351276b +Subproject commit b15e95a16af4e05bf89cecf5c5d3f82bfe70ced8 diff --git a/src/assembler/findassemblystart.cpp b/src/assembler/findassemblystart.cpp index cb8ff4b3..c0b71494 100644 --- a/src/assembler/findassemblystart.cpp +++ b/src/assembler/findassemblystart.cpp @@ -86,7 +86,7 @@ int findassemblystart(int argn, const char **argv, const Command& command) { const char *entry[255]; const size_t columns = Util::getWordsOfLine(results, entry, 255); Matcher::result_t res; - if (columns >= Matcher::ALN_RES_WITH_OUT_BT_COL_CNT) { + if (columns >= Matcher::ALN_RES_WITHOUT_BT_COL_CNT) { res = Matcher::parseAlignmentRecord(results); } else { Debug(Debug::ERROR) << "ERROR: Backtrace is missing for at result: " << id << "\n";