Skip to content

Commit

Permalink
add quicksilver (#12)
Browse files Browse the repository at this point in the history
* add pennant
* add quicksilver

Signed-off-by: vsoch <vsoch@users.noreply.github.com>
  • Loading branch information
vsoch committed Aug 13, 2023
1 parent 463ceb8 commit cd8e08a
Show file tree
Hide file tree
Showing 5 changed files with 510 additions and 0 deletions.
2 changes: 2 additions & 0 deletions .github/workflows/docker-builds.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,9 @@ jobs:
["osu-benchmark", "ghcr.io/converged-computing/metric-osu-benchmark:latest"],
["fio", "ghcr.io/converged-computing/metric-fio:latest"],
["amg", "ghcr.io/converged-computing/metric-amg:latest"],
["pennant", "ghcr.io/converged-computing/metric-pennant:latest"],
["qmcpack", "ghcr.io/converged-computing/metric-qmcpack:latest"],
["quicksilver", "ghcr.io/converged-computing/metric-quicksilver:latest"],
["kripke", "ghcr.io/converged-computing/metric-kripke:latest"],
["nekbone", "ghcr.io/converged-computing/metric-nekbone:latest"],
["lammps", "ghcr.io/converged-computing/metric-lammps:latest"]]
Expand Down
30 changes: 30 additions & 0 deletions pennant/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
ARG tag=latest
FROM ubuntu:${tag}
ENV DEBIAN_FRONTEND=noninteractive

# Example command
# pennant /opt/pennant/test/sedovsmall/sedovsmall.pnt

RUN apt-get update && \
apt-get install -y fftw3-dev fftw3 pdsh libfabric-dev libfabric1 \
openssh-client openssh-server \
dnsutils telnet strace cmake git g++ \
mpich unzip bzip2

WORKDIR /opt
RUN git clone https://github.com/llnl/pennant
WORKDIR /opt/pennant
COPY ./Makefile /opt/pennant/Makefile
RUN make && mv ./build/pennant /usr/bin/pennant

# Hack for ssh for now...
RUN echo " LogLevel ERROR" >> /etc/ssh/ssh_config && \
echo " StrictHostKeyChecking no" >> /etc/ssh/ssh_config && \
echo " UserKnownHostsFile=/dev/null" >> /etc/ssh/ssh_config && \
cd /root && \
mkdir -p /run/sshd && \
ssh-keygen -t rsa -N "" -f /root/.ssh/id_rsa && chmod og+rX . && \
cd .ssh && cat id_rsa.pub > authorized_keys && chmod 644 authorized_keys

EXPOSE 22
WORKDIR /opt/pennant/test
79 changes: 79 additions & 0 deletions pennant/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
BUILDDIR := build
PRODUCT := pennant

SRCDIR := src

HDRS := $(wildcard $(SRCDIR)/*.hh)
SRCS := $(wildcard $(SRCDIR)/*.cc)
OBJS := $(SRCS:$(SRCDIR)/%.cc=$(BUILDDIR)/%.o)
DEPS := $(SRCS:$(SRCDIR)/%.cc=$(BUILDDIR)/%.d)

BINARY := $(BUILDDIR)/$(PRODUCT)

# begin compiler-dependent flags
#
# gcc flags:
CXX := g++
CXXFLAGS_DEBUG := -g
CXXFLAGS_OPT := -O3
CXXFLAGS_OPENMP := -fopenmp

# intel flags:
#CXX := icpc
#CXXFLAGS_DEBUG := -g
#CXXFLAGS_OPT := -O3 -fast -fno-alias
#CXXFLAGS_OPENMP := -openmp

# pgi flags:
#CXX := pgCC
#CXXFLAGS_DEBUG := -g
#CXXFLAGS_OPT := -O3 -fastsse
#CXXFLAGS_OPENMP := -mp

# end compiler-dependent flags

# select optimized or debug
CXXFLAGS := $(CXXFLAGS_OPT)
#CXXFLAGS := $(CXXFLAGS_DEBUG)

# add mpi to compile (comment out for serial build)
# the following assumes the existence of an mpi compiler
# wrapper called mpicxx
CXX := mpicxx
CXXFLAGS += -DUSE_MPI

# add openmp flags (comment out for serial build)
CXXFLAGS += $(CXXFLAGS_OPENMP)
LDFLAGS += $(CXXFLAGS_OPENMP)

LD := $(CXX)


# begin rules
all : $(BINARY)

-include $(DEPS)

$(BINARY) : $(OBJS)
@echo linking $@
$(maketargetdir)
$(LD) -o $@ $^ $(LDFLAGS)

$(BUILDDIR)/%.o : $(SRCDIR)/%.cc
@echo compiling $<
$(maketargetdir)
$(CXX) $(CXXFLAGS) $(CXXINCLUDES) -c -o $@ $<

$(BUILDDIR)/%.d : $(SRCDIR)/%.cc
@echo making depends for $<
$(maketargetdir)
@$(CXX) $(CXXFLAGS) $(CXXINCLUDES) -MM $< | sed "1s![^ \t]\+\.o!$(@:.d=.o) $@!" >$@

define maketargetdir
-@mkdir -p $(dir $@) >/dev/null 2>&1
endef

.PHONY : clean
clean :
rm -f $(BINARY) $(OBJS) $(DEPS)

54 changes: 54 additions & 0 deletions quicksilver/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
ARG tag=latest
FROM ubuntu:${tag}
ENV DEBIAN_FRONTEND=noninteractive

# Example command
# qs /opt/quicksilver/Examples/CORAL2_Benchmark/Problem1/Coral2_P1.inp

# All examples:
# /opt/quicksilver/Examples/AllScattering/scatteringOnly.inp
# /opt/quicksilver/Examples/NoCollisions/no.collisions.inp
# /opt/quicksilver/Examples/NonFlatXC/NonFlatXC.inp
# /opt/quicksilver/Examples/CORAL2_Benchmark/Problem2/Coral2_P2_4096.inp
# /opt/quicksilver/Examples/CORAL2_Benchmark/Problem2/Coral2_P2.inp
# /opt/quicksilver/Examples/CORAL2_Benchmark/Problem2/Coral2_P2_1.inp
# /opt/quicksilver/Examples/CORAL2_Benchmark/Problem1/Coral2_P1.inp
# /opt/quicksilver/Examples/CORAL2_Benchmark/Problem1/Coral2_P1_1.inp
# /opt/quicksilver/Examples/CORAL2_Benchmark/Problem1/Coral2_P1_4096.inp
# /opt/quicksilver/Examples/CTS2_Benchmark/CTS2.inp
# /opt/quicksilver/Examples/CTS2_Benchmark/CTS2_36.inp
# /opt/quicksilver/Examples/CTS2_Benchmark/CTS2_1.inp
# /opt/quicksilver/Examples/AllAbsorb/allAbsorb.inp
# /opt/quicksilver/Examples/Homogeneous/homogeneousProblem_v4_ts.inp
# /opt/quicksilver/Examples/Homogeneous/homogeneousProblem_v5_ts.inp
# /opt/quicksilver/Examples/Homogeneous/homogeneousProblem.inp
# /opt/quicksilver/Examples/Homogeneous/homogeneousProblem_v3_wq.inp
# /opt/quicksilver/Examples/Homogeneous/homogeneousProblem_v7_ts.inp
# /opt/quicksilver/Examples/Homogeneous/homogeneousProblem_v4_tm.inp
# /opt/quicksilver/Examples/Homogeneous/homogeneousProblem_v3.inp
# /opt/quicksilver/Examples/AllEscape/allEscape.inp
# /opt/quicksilver/Examples/NoFission/noFission.inp

RUN apt-get update && \
apt-get install -y fftw3-dev fftw3 pdsh libfabric-dev libfabric1 \
openssh-client openssh-server \
dnsutils telnet strace cmake git g++ \
mpich unzip bzip2

WORKDIR /opt
RUN git clone https://github.com/LLNL/Quicksilver quicksilver
COPY ./Makefile /opt/quicksilver/src/Makefile
WORKDIR /opt/quicksilver/src
RUN make && mv qs /usr/bin/qs

# Hack for ssh for now...
RUN echo " LogLevel ERROR" >> /etc/ssh/ssh_config && \
echo " StrictHostKeyChecking no" >> /etc/ssh/ssh_config && \
echo " UserKnownHostsFile=/dev/null" >> /etc/ssh/ssh_config && \
cd /root && \
mkdir -p /run/sshd && \
ssh-keygen -t rsa -N "" -f /root/.ssh/id_rsa && chmod og+rX . && \
cd .ssh && cat id_rsa.pub > authorized_keys && chmod 644 authorized_keys

EXPOSE 22
WORKDIR /opt/quicksilver/Examples

0 comments on commit cd8e08a

Please sign in to comment.