From 1e3177994e23c51b39017924ebfb7a439a29e5f3 Mon Sep 17 00:00:00 2001 From: Connor Moore Date: Tue, 27 May 2025 13:35:15 -0400 Subject: [PATCH 1/2] ND Tier 3 Example Materials --- sites/nd-tier3/README.md | 17 +++++++++++++++ sites/nd-tier3/example.py | 31 +++++++++++++++++++++++++++ sites/nd-tier3/example_input.parquet | Bin 0 -> 76919 bytes sites/nd-tier3/factory.json | 11 ++++++++++ sites/nd-tier3/factory_command.sh | 6 ++++++ 5 files changed, 65 insertions(+) create mode 100644 sites/nd-tier3/example.py create mode 100644 sites/nd-tier3/example_input.parquet create mode 100644 sites/nd-tier3/factory.json create mode 100644 sites/nd-tier3/factory_command.sh diff --git a/sites/nd-tier3/README.md b/sites/nd-tier3/README.md index e69de29..81c1885 100644 --- a/sites/nd-tier3/README.md +++ b/sites/nd-tier3/README.md @@ -0,0 +1,17 @@ +To run Task/Dask Vine on the ND Tier 3: + +``` +conda create -n taskvine python=3 -y +conda activate taskvine +conda install ndcctools -y +python -m pip install awkward dask_awkward pyarrow pandas +poncho_package_create taskvine taskvine_packed.tar.gz +``` + +From here, you will need two interactive sessions. One to run the application and one run the Vine Factory. A second login session will work, but using terminal multiplexer (e.g. tmux, screen) might be simpler. + +You will need to edit a few things before the examples are ready to run: + 1. In `example.py`, adjust the run argument of `run_info_path` to an area where you would like to store the files for the manager, staging files, and log files for this application. + 2. In `factory_command.sh`, adjust the argument for `scratch_dir` to point to an appropriate scratch directory. + +In the first terminal, do `python example.py`. When a progress bar appears, the application is ready to receive workers. In the second terminal, do `source factory_command.sh`. When status table appears listing the number of waiting, running, and completed tasks, the factory is ready to request and connect workers. If the application `example.py` runs successfully, you have successfully set up TaskVine. diff --git a/sites/nd-tier3/example.py b/sites/nd-tier3/example.py new file mode 100644 index 0000000..38c6d97 --- /dev/null +++ b/sites/nd-tier3/example.py @@ -0,0 +1,31 @@ +import awkward as ak +import dask_awkward as dak +from ndcctools.taskvine import DaskVine +import dask + +# Create DaskVine +if __name__ == "__main__": + m = DaskVine( + [9101, 9200], #Define the available ports for DaskVine here# + name="example_manager", #Define the name of the Vine manager here# + run_info_path="/path/to/vine-run-info", #Define the location for the vine-run-info directory here#, + run_info_template="example_application", #Define the name of the folder information for this application will be stored in here#, + ) + +#Basic Options for DaksVine + m.tune("temp-replica-count", 3) + m.tune("worker-source-max-transfers", 100000) + + arr = dak.from_parquet('example_input.parquet') + arr_sum = ak.sum(arr) + + computed_sum = dask.compute( + arr_sum, + scheduler=m.get, + worker_transfers=True, + resources={"cores": 1}, + task_mode="function-calls", + lib_resources={'cores': 1, 'slots': 1}, + ) + + print(f'The sum is {computed_sum}; if that number is 4998.4362, then you have successfully run DaskVine!') diff --git a/sites/nd-tier3/example_input.parquet b/sites/nd-tier3/example_input.parquet new file mode 100644 index 0000000000000000000000000000000000000000..9897c015f804becc244a6b2baf527f9258b810bc GIT binary patch literal 76919 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 LG60|n*5>(N`X;{u literal 0 HcmV?d00001 diff --git a/sites/nd-tier3/factory.json b/sites/nd-tier3/factory.json new file mode 100644 index 0000000..62d1ce6 --- /dev/null +++ b/sites/nd-tier3/factory.json @@ -0,0 +1,11 @@ +{ + "manager-name":"example_manager", + "max-workers":2, + "min-workers":0, + "workers-per-cycle":1000, + "cores":2, + "memory":cores*1048, + "disk":1000, + "timeout":600, + "condor-requirements": "((has_vast) && !regexp(\"^camd\", MachineShortName))" +} diff --git a/sites/nd-tier3/factory_command.sh b/sites/nd-tier3/factory_command.sh new file mode 100644 index 0000000..81cf69c --- /dev/null +++ b/sites/nd-tier3/factory_command.sh @@ -0,0 +1,6 @@ +vine_factory -T condor \ + -C factory.json \ + --python-env taskvine_packed.tar.gz \ + --scratch-dir /path/to/vine_scratch/ \ + --parent-death \ + --factory-timeout 600 From 4f80374611b775456d988bb2bf46292df8dbda76 Mon Sep 17 00:00:00 2001 From: cmoore24-24 <66485982+cmoore24-24@users.noreply.github.com> Date: Tue, 27 May 2025 12:37:38 -0500 Subject: [PATCH 2/2] Update README.md Typo fix --- sites/nd-tier3/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sites/nd-tier3/README.md b/sites/nd-tier3/README.md index 81c1885..301274a 100644 --- a/sites/nd-tier3/README.md +++ b/sites/nd-tier3/README.md @@ -14,4 +14,4 @@ You will need to edit a few things before the examples are ready to run: 1. In `example.py`, adjust the run argument of `run_info_path` to an area where you would like to store the files for the manager, staging files, and log files for this application. 2. In `factory_command.sh`, adjust the argument for `scratch_dir` to point to an appropriate scratch directory. -In the first terminal, do `python example.py`. When a progress bar appears, the application is ready to receive workers. In the second terminal, do `source factory_command.sh`. When status table appears listing the number of waiting, running, and completed tasks, the factory is ready to request and connect workers. If the application `example.py` runs successfully, you have successfully set up TaskVine. +In the first terminal, do `python example.py`. When a progress bar appears, the application is ready to receive workers. In the second terminal, do `source factory_command.sh`. When a status table appears listing the number of waiting, running, and completed tasks, the factory is ready to request and connect workers. If the application `example.py` runs successfully, you have successfully set up TaskVine.