Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Doc tweaks for paper resubmission #374

Merged
merged 34 commits into from
Aug 25, 2020
Merged
Show file tree
Hide file tree
Changes from 30 commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
78cfa80
these are the files that correspond to figure S1
dylanbannon Aug 11, 2020
a172fa4
adding benchmarking documentation
dylanbannon Aug 12, 2020
101bf1d
cleaning up benchmarking documentation
dylanbannon Aug 14, 2020
5b593f8
added in instructions on reproducing the figures from the paper
dylanbannon Aug 14, 2020
0fd6e1b
fixing RST errors
dylanbannon Aug 14, 2020
2700a42
sequestering all benchmarking figure talk in its own subsections
dylanbannon Aug 14, 2020
99b41a0
cleaned up so that the two benchmarking figure subsections can be eas…
dylanbannon Aug 14, 2020
bca6e73
moving figure recreation details to publication-figures repo
dylanbannon Aug 14, 2020
8a77bb0
Update docs/source/DEVELOPER.rst
dylanbannon Aug 17, 2020
070e0aa
Update docs/source/DEVELOPER.rst
dylanbannon Aug 17, 2020
a2da26c
Update docs/source/DEVELOPER.rst
dylanbannon Aug 17, 2020
0ea2ff7
Update docs/source/DEVELOPER.rst
dylanbannon Aug 17, 2020
67e067e
Update docs/source/DEVELOPER.rst
dylanbannon Aug 17, 2020
5a7b38d
trimming text
dylanbannon Aug 17, 2020
8825540
cleaning benchmarking documentation
dylanbannon Aug 18, 2020
61ebb04
Update docs/source/DEVELOPER.rst
dylanbannon Aug 18, 2020
be998b6
Update docs/source/DEVELOPER.rst
dylanbannon Aug 18, 2020
c021dce
Update docs/source/DEVELOPER.rst
dylanbannon Aug 18, 2020
e1d892f
expanding benchmarking procedure documentation
dylanbannon Aug 18, 2020
f5bded1
providing functioning public link to kiosk-benchmarking bucket
dylanbannon Aug 19, 2020
b4d1d85
punctuation cleanup
dylanbannon Aug 19, 2020
2c4e31e
Update docs/source/DEVELOPER.rst
dylanbannon Aug 19, 2020
b1dafdb
fixing corrupted link
dylanbannon Aug 19, 2020
e468c96
Merge branch 'doc_tweaks_for_paper_resubmission' of github:vanvalenla…
dylanbannon Aug 19, 2020
34f6788
simplifying and unifying icons and connections in architecture diagram
dylanbannon Aug 20, 2020
32dcb42
modifying reference to publication-figures repo to reflect reorganiza…
dylanbannon Aug 20, 2020
879cbcc
updating link to publication-figures repo
dylanbannon Aug 20, 2020
78fb3d9
cleaning up architecture diagram
dylanbannon Aug 20, 2020
93fa582
Update docs/source/DEVELOPER.rst
dylanbannon Aug 20, 2020
95affa4
scaling to the desired dpi
dylanbannon Aug 20, 2020
446d537
Upate spacing in architecture diagram (#375)
willgraf Aug 24, 2020
31aa66f
One of the consumers should be "Consumer B".
willgraf Aug 24, 2020
4e93704
Update docs/source/DEVELOPER.rst
dylanbannon Aug 25, 2020
aee847f
touching up text
dylanbannon Aug 25, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file modified docs/images/Kiosk_Architecture.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion docs/images/Kiosk_Architecture.xml
Original file line number Diff line number Diff line change
@@ -1 +1 @@
<mxfile modified="2020-03-23T21:49:19.823Z" host="app.diagrams.net" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:74.0) Gecko/20100101 Firefox/74.0" etag="R6B_OFPcHXYypOXCqkrY" version="12.9.0" type="device"><diagram id="f106602c-feb2-e66a-4537-3a34d633f6aa" name="Page-1">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</diagram></mxfile>
<mxfile modified="2020-08-20T18:53:22.091Z" host="app.diagrams.net" agent="5.0 (X11)" etag="iMhPG6KCfwI1JFbSJEAA" version="13.6.4" type="device"><diagram id="f106602c-feb2-e66a-4537-3a34d633f6aa" name="Page-1">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</diagram></mxfile>
29 changes: 29 additions & 0 deletions docs/source/DEVELOPER.rst
Original file line number Diff line number Diff line change
Expand Up @@ -144,3 +144,32 @@ The Deepcell Kiosk uses Google Kubernetes Engine to requisition resources on Goo
5. any Persistent Disks associated with your cluster

While we hope this list is comprehensive, there could be some lingering resources used by Google Cloud and not deleted automatically that we're not aware of.

Benchmarking the DeepCell Kiosk
---------------------------------------------------------

The DeepCell Kiosk comes with a utility for benchmarking the scalability and performance of a deep learning workflow. To reproduce the cost and timing benchmarks reported in the DeepCell Kiosk paper, please refer to `the 2020-Bannon_et_al-Kiosk folder of our figure creation repository <https://github.com/vanvalenlab/publication-figures/tree/master/2020-Bannon_et_al-Kiosk>`_. To run your own benchmarking, please read below.

1. If you don't already have a cloud storage bucket for use with the DeepCell Kiosk, you should create one now. It's fine to reuse this bucket across multiple DeepCell Kiosk clusters.

2. There are three variables in the benchmarking pod's YAML file, ``conf/helmfile.d/0410.benchmarking.yaml``, that may need to be customized before benchmarking:

- ``MODEL`` is the model name and version that will be used in benchmarking. The model you choose should be present in the ``models/`` folder of your benchmarking bucket. See the `Van Valen Lab's benchmarking bucket <https://console.cloud.google.com/storage/browser/kiosk-benchmarking>`_ for an example.
willgraf marked this conversation as resolved.
Show resolved Hide resolved
- ``FILE`` is the name of the file that will be used for benchmarking. A file by this name should be in your benchmarking bucket in the ``uploads/`` folder.
- ``COUNT`` specifies how many times the ``FILE`` will be submitted to the cluster for processing.

3. Deploy a DeepCell Kiosk as you normally would. While navigating the cluster configuration menu, pay special attention to two configuration settings:

- The bucket name you provide should be that of the benchmarking bucket from step 1.
- The Maximum Number of GPUs has a strong effect on benchmarking time by effectively limiting how large the cluster can scale.

4. Once the cluster has deployed successfully, drop to the ``Shell`` via the DeepCell Kiosk main menu and begin the benchmarking process by executing the following command: ``kubectl scale deployment benchmarking --replicas=1``.
dylanbannon marked this conversation as resolved.
Show resolved Hide resolved

5. Benchmarking jobs can take a day or more, depending on the conditions (# of images and max # of GPUs) chosen. To monitor the status of your benchmarking job, drop to the ``Shell`` within the DeepCell Kiosk main menu and execute the command ``stern benchmarking -s 10m``. This will show you the most recent log output from the `benchmarking` pod. When benchmarking has finished, the final line in the log should be ``Uploaded [FILEPATH] to [BUCKET] in [SECONDS] seconds.``, where ``[FILEPATH]`` is the location in ``[BUCKET]`` where the benchmarking data has been saved.
dylanbannon marked this conversation as resolved.
Show resolved Hide resolved

6. Now that the benchmarking process has finished, clean up the benchmarking resources by executing ``kubectl scale deployment benchmarking --replicas 0`` at the DeepCell Kiosk's ``Shell``. This prevents the benchmarking process from executing multiple times in long-lived clusters.

7. Finally, you can download and analyze your benchmarking data. Two top-level fields in this large JSON file that are of interest are:

- ``time_elapsed``: the exact running time of the benchmarking procedure (seconds)
- ``total_node_and_networking_costs``: a slight underestimate of the total costs of the benchmarking run. (This total does not include Storage, Operation, or Storage Egress Fees. These extra fees `can be calculated <https://github.com/vanvalenlab/publication-figures/blob/383a90149eb86d4a0a697395edffb32d383bb1ca/figure_generation/data_extractor.py#L318>`_ after the fact by using the `Google Cloud guidelines <https://cloud.google.com/vpc/network-pricing#general>`_.)