FROM debian:10.10-slim
-RUN echo " \
- deb [check-valid-until=no, trusted=yes] http://snapshot.debian.org/archive/debian/20210707T150931Z/ buster main contrib non-free \n\
- deb-src [check-valid-until=no, trusted=yes] http://snapshot.debian.org/archive/debian/20210707T150931Z/ buster main contrib non-free \n\
- deb [check-valid-until=no, trusted=yes] http://snapshot.debian.org/archive/debian-security/20210707T150931Z/ buster/updates main contrib non-free \n\
- deb-src [check-valid-until=no, trusted=yes] http://snapshot.debian.org/archive/debian-security/20210707T150931Z/ buster/updates main contrib non-free" > /etc/apt/sources.list
-
-RUN apt-get -o Acquire::Check-Valid-Until=false update;
-
+RUN printf '%s\n' \
+ "deb [check-valid-until=no, trusted=yes] http://snapshot.debian.org/archive/debian/20210707T150931Z/ buster main contrib non-free" \
+ "deb-src [check-valid-until=no, trusted=yes] http://snapshot.debian.org/archive/debian/20210707T150931Z/ buster main contrib non-free" \
+ "deb [check-valid-until=no, trusted=yes] http://snapshot.debian.org/archive/debian-security/20210707T150931Z/ buster/updates main contrib non-free" \
+ "deb-src [check-valid-until=no, trusted=yes] http://snapshot.debian.org/archive/debian-security/20210707T150931Z/ buster/updates main contrib non-free" > /etc/apt/sources.list \
+&& \
+ apt-get -o Acquire::Check-Valid-Until=false update \
+&& \
+ apt-get install -y --no-install-recommends \
# emacs
-RUN apt-get install -y \
emacs \
ess \
- elpa-htmlize
-
+ elpa-htmlize \
# R
-RUN apt-get install -y \
r-base-core \
r-cran-ggplot2 \
r-cran-dplyr \
r-cran-plyr \
r-cran-jsonlite \
- r-cran-gridextra
-
+ r-cran-gridextra \
# simgrid dependencies
-RUN apt install -y \
g++ \
gcc \
git \
libboost-dev \
libboost-all-dev \
cmake \
- dpkg-dev
-
-RUN apt-get install -y \
- curl
-
-RUN apt-get clean \
+ dpkg-dev \
+# misc tools
+ curl \
+&& \
+ apt-get clean \
&& rm -rf /var/lib/apt/lists/*
# install ox-rst to convert org to rst
#####################################################################################################
-def create_hostzone(zone: simgrid.NetZone, coord: typing.List[int], id: int) -> typing.Tuple[simgrid.NetPoint, simgrid.NetPoint]:
+def create_hostzone(zone: simgrid.NetZone, coord: typing.List[int], ident: int) -> typing.Tuple[simgrid.NetPoint, simgrid.NetPoint]:
"""
Callback to set a cluster leaf/element
:param zone: Cluster netzone being created (usefull to create the hosts/links inside it)
:param coord: Coordinates in the cluster
- :param id: Internal identifier in the torus (for information)
+ :param ident: Internal identifier in the torus (for information)
:return netpoint, gateway: the netpoint to the StarZone and CPU0 as gateway
"""
num_cpus = 8 # Number of CPUs in the zone
link_bw = "100GBps" # Link bw connecting the CPU
link_lat = "1ns" # Link latency
- hostname = "host" + str(id)
+ hostname = "host" + str(ident)
# create the StarZone
host_zone = simgrid.NetZone.create_star_zone(hostname)
# setting my Torus parent zone
#####################################################################################################
-def create_limiter(zone: simgrid.NetZone, coord: typing.List[int], id: int) -> simgrid.Link:
+def create_limiter(zone: simgrid.NetZone, coord: typing.List[int], ident: int) -> simgrid.Link:
"""
Callback to create limiter link (1Gbs) for each netpoint
The coord parameter depends on the cluster being created:
- Torus: Direct translation of the Torus' dimensions, e.g. (0, 0, 0) for a 3-D Torus
- - Fat-Tree: A pair (level in the tree, id), e.g. (0, 0) for first leaf in the tree and (1,0) for the first switch at
+ - Fat-Tree: A pair (level in the tree, ident), e.g. (0, 0) for first leaf in the tree and (1,0) for the first switch at
level 1.
- Dragonfly: a tuple (group, chassis, blades/routers, nodes), e.g. (0, 0, 0, 0) for first node in the cluster. To
identify the router inside a (group, chassis, blade), we use MAX_UINT in the last parameter (e.g. 0, 0, 0,
:param zone: Torus netzone being created (usefull to create the hosts/links inside it)
:param coord: Coordinates in the cluster
- :param id: Internal identifier in the torus (for information)
+ :param ident: Internal identifier in the torus (for information)
:return: Limiter link
"""
- return zone.create_link("limiter-" + str(id), [1e9]).seal()
+ return zone.create_link("limiter-" + str(ident), [1e9]).seal()
def create_torus_cluster():