Internal:DQHED
Distributed Quantum Hadamard Edge Detection (DQHED)
Literature Review
This report was generated by reviewing publicly available research as of March 2022.
Weekly Reports
Weeks of 2Mar and 12Mar
Generated the following notes on current methods in quantum edge detection.
Week of 19Mar
In an effort to understand it - reviewed, commented, and added typing to Emmanuel's QHED code in the quantum repository at wahab.hpc.odu.edu:/RC/group/RC_NIKOS/CodeRepository/quantum.git
Weeks of 26Mar and 2Apr
Created a separate script for Multi-node Quantum Hadamard Edge Detection (QHED) with a workflow for parallel quantum circuit simulation and execution. Current progress is stored on the qhed branch. The three main tasks eligible for concurrency are:
1. Circuit description
2. Transpilation
3. Execution
In addition, the requirement for padding was removed, as it is not necessary. Only one pixel per run is wasted to provide overlap between subimages.
Week of 9Apr
Researched the SLURMCluster module from Dask with respect to the MQHED problem. All that is required is to provide the module a description of the nodes. The Scheduler will create and submit a job script to SLURM, which will function to automatically request nodes. Once this is complete, Dask Futures can be used to provide arbitrary Python methods with arguments for the SLURMCluster to manage. Relevant methods are dask.distributed.Client.map and dask.distributed.[result, gather, as_completed]. Sample usage will be as follows, with the SLURMCluster parameters specified by a .yaml file:
from dask.distributed import Client, as_completed from dask.jobqueue import SLURMCluster
cluster = SLURMCluster()
cluser.adapt(minimum_jobs=min, maximum_jobs=max)
client = Client(cluster)
.
.
.
results = []
futures = client.map(func, args)
for future in as_completed(futures):
results.append(future.result())
Currently working on a LocalCluster to test the dask.distributed functions before moving the work to a SLURMCluster on wahab. The script will maintain the ability to function on a local machine through a user-provided configuration file.
References
Emmanuel's Contibutions
Proposal Additions for QHED December 2022[1]