forked from alibaba/libgrape-lite
-
Notifications
You must be signed in to change notification settings - Fork 0
/
run_app.dockerfile
31 lines (30 loc) 路 1.44 KB
/
run_app.dockerfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
FROM ubuntu:18.04 as builder
# install the packages for dev
RUN apt update; apt install -y build-essential git libgoogle-glog-dev libunwind-dev
# cmake >= 3.10 cannot find_package(MPI) as LIBRARY_SUFFIXES ".a" for LINKER_FLAGS "-static"
ADD https://github.com/Kitware/CMake/archive/refs/tags/v3.9.6.tar.gz /
RUN tar -xf /v3.9.6.tar.gz --directory=/
WORKDIR /CMake-3.9.6
RUN ./configure; make install
# build mpich from source
ADD http://www.mpich.org/static/downloads/3.4.3/mpich-3.4.3.tar.gz /
RUN tar -xf /mpich-3.4.3.tar.gz --directory=/
WORKDIR /mpich-3.4.3
RUN ./configure --with-device=ch3 --disable-fortran; make install
# build run_app of grape-lite
COPY . /libgrape-lite-src
WORKDIR /libgrape-lite-src/build
RUN rm -rf *; cmake ..; make -j
FROM ubuntu:18.04
RUN apt update; apt install -y libunwind8 libgomp1 amqp-tools
COPY --from=builder /libgrape-lite-src/build/run_app /libgrape-lite-src/build/run_app
COPY --from=builder /libgrape-lite-src/dataset /libgrape-lite-src/dataset
COPY --from=builder /usr/local/bin/mpiexec.hydra /usr/local/bin/mpirun
COPY --from=builder /usr/local/bin/hydra_pmi_proxy /usr/local/bin/hydra_pmi_proxy
# default command (for test and demo)
ENTRYPOINT ["mpirun"]
CMD ["-n", "2", "/libgrape-lite-src/build/run_app", "--directed", \
"--vfile", "/libgrape-lite-src/dataset/p2p-31.v", \
"--efile", "/libgrape-lite-src/dataset/p2p-31.e", \
"--application", "sssp", "--sssp_source", "6", \
"--out_prefix", "/libgrape-lite-src/build/output_sssp"]