Skip to content

Make "Artifact" section from ASPLOS'20 paper work #32

@andreybokhanko

Description

@andreybokhanko

Hi,

Sorry if this is a wrong place to submit such an issue -- in this case, let me know which one would be more appropriate.

After a lot of trial and error, I discovered that instructions from your "A. Artifact Appendix" section of ASPLO'20 paper (https://liberty.princeton.edu/Publications/asplos20_perspective.pdf) don't work.

Specifically, "docker build" command fails with the following error:

Step 3/24 : RUN apt-get install -y curl
 ---> Running in ba1c4be6231f
Reading package lists...
Building dependency tree...
Reading state information...
E: Unable to locate package curl
Removing intermediate container ba1c4be6231f
The command '/bin/sh -c apt-get install -y curl' returned a non-zero code: 100`

This can be solved by adding "RUN apt-get update" as the first RUN line; however, then we stumble on installation of required python packages:

Step 9/25 : RUN pip3 install -r /root/requirements.txt
 ---> Running in d8d51cffe719
Collecting joblib>=0.13.2 (from -r /root/requirements.txt (line 1))
  Downloading https://files.pythonhosted.org/packages/55/85/70c6602b078bd9e6f3da4f467047e906525c355a4dacd4f71b97a35d9897/joblib-1.0.1-py3-none-any.whl (303kB)
Collecting numpy>=1.16.1 (from -r /root/requirements.txt (line 2))
  Downloading https://files.pythonhosted.org/packages/82/a8/1e0f86ae3f13f7ce260e9f782764c16559917f24382c74edfb52149897de/numpy-1.20.2.zip (7.8MB)
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-build-zoermkau/numpy/setup.py", line 30, in <module>
        raise RuntimeError("Python version >= 3.7 required.")
    RuntimeError: Python version >= 3.7 required.

Apparently, a lot of packages (most crucially, scipy) require Python 3.7 as the minimum, while Ubuntu 16.04 comes with Python 3.5.

I failed to solve this problem with Ubuntu 16.04 and switched to Ubuntu 20.04 (which doesn't have gcc-5, so corresponding lines have to be removed). Dockerfile that works for me is:

FROM ubuntu:20.04

ENV DEBIAN_FRONTEND="noninteractive"
RUN apt-get update
RUN apt-get install -y curl tzdata
RUN apt-get install -y vim make gcc g++ time binutils ruby python3 python3-dev python3-pip python3-matplotlib

COPY ./requirements.txt /root/requirements.txt
RUN pip3 install -r /root/requirements.txt

RUN useradd --create-home --shell /bin/bash asplos20ae

USER asplos20ae
WORKDIR /home/asplos20ae

COPY --chown=asplos20ae ./benchmarks /home/asplos20ae/benchmarks
COPY --chown=asplos20ae ./CK /home/asplos20ae/CK
COPY --chown=asplos20ae ./exp_scripts /home/asplos20ae/exp_scripts
COPY --chown=asplos20ae ./llvm /home/asplos20ae/llvm
COPY --chown=asplos20ae ./perspective_lib /home/asplos20ae/perspective_lib
COPY --chown=asplos20ae ./README.md /home/asplos20ae/README.md
COPY --chown=asplos20ae ./reference-result.txt /home/asplos20ae/reference-result.txt
COPY --chown=asplos20ae ./reference-comparison-exp.pdf  /home/asplos20ae/reference-comparison-exp.pdf
COPY --chown=asplos20ae ./reference-scalability-exp.pdf  /home/asplos20ae/reference-scalability-exp.pdf
COPY --chown=asplos20ae ./bashrc /home/asplos20ae/bashrc
RUN cat /home/asplos20ae/bashrc >> /home/asplos20ae/.bashrc
RUN rm /home/asplos20ae/bashrc

CMD /bin/bash

Unfortunately, even with this dockerfile the final step, that is supposed to run benchmarking, doesn't work:

$ pwd
/home/asplos20ae
$ ck run artifact
CK error: [artifact] action "run" not found in module "artifact" (417c3b437caa4594)!

I'm not an expert in "ck" framework, so stumbled here.

Please kindly help me to move forward or -- preferably -- post fixed instructions somewhere.

Yours,
Andrey
===
Advanced Software Technology Lab
Huawei

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions