Ph.D. Research
University of Wyoming
Scheduling and Algorithm Selection for solving combinatorial problems
For solving NP-Complete problems, there is more than one algorithm or approach to solve them.
Such algorithms often have complementary performance – where one fails, another performs well,
and vice versa.
Per-instance algorithm selection leverages this by employing portfolios of complementary algorithms
to solve sets of difficult problems, choosing the most appropriate algorithm for each problem instance.
However, this requires complex models to effect this selection and introduces overhead to compute
the data needed for those models.
On the other hand, even basic hardware is more than capable of running several algorithms in parallel.
We investigate the tradeoff between selecting a single algorithm and running multiple in parallel and
incurring a slowdown because of contention for shared resources.
Also, we investigate dynamically estimating and allocating parallel computational resources for solving
Algorithm Selection problems which is known as scheduling problem but in solving combinatorial problems.
August 2019 - Present
Graduate Scholar
University of Wyoming - School of Computing
Advancing Data Science in UW Athletics
August 2023 - Present
Summer 2023 Internship
National Center for Atmospheric Research
CI for ASAP Applications: Using Github Actions for Rapid Development,
May 2023 - August 2023
Summer 2022 Internship
National Center for Atmospheric Research
Exploring performance of GeoCAT data analysis routines on GPUs
The GeoCAT-comp program is a Python toolkit used by the geoscience community to analyze data.
This project explores ways to port GeoCAT-comp to run on GPUs, as recent supercomputers are
shifting to include GPU accelerators as the major resource. Although GeoCAT-comp's routines are
all sequential or utilize Dask parallelization on the CPU, the data processing is embarrassingly
parallel and computationally costly, enabling us to optimize using GPUs. GeoCAT uses NumPy, Xarray,
and Dask arrays for CPU parallelization. In this project, we examined different GPU-accelerated
Python packages (e.g., Numba and CuPy). Taking into account the deliverability of the final porting
method to the GeoCAT team, CuPy is selected. CuPy is a Python CUDA-enabled array backend module
that is quite similar to NumPy. We analyzed the performance of the GPU-accelerated code compared
to the Dask CPU parallelized code over various array sizes and resources, and through strong and weak scaling.
Want to learn more? Check out my full journey at: My Summer Internship Presentation & Poster!
May 2022 - July 2022
Teaching Assistant
University of Wyoming
WyStack - Supporting Teachers and Computing Knowledge
WyStack is a program to support Wyoming Teachers in gaining computational knowledge. During this program some research questions was addressed and teachers use modeling practices as supports for student understanding of algorithms and coding in a variety of ways.
Keywords: HPC, Machine Learning, Research.
June 2021 - July 2021
2020 Internship
University of Wyoming
Animal Indentification
Having an automated system to extract data from images would be useful if it
can give us accurate and detailed information on objects that appeared in the
images. In wildlife biology, biologists tend to protect and monitor animals, and
for this goal, they use auto-capturing cameras in the animals’ habitats. The
cameras are sensitive to movement, and they take pictures whenever they sense
a change in the frame. There can be many images taken not because of animal
movement but for other movements like wind, and they need to be identified.
Using human labor would be very expensive and time-consuming, and using a
system that can give us information about the behavior of animals inexpensively and accurately would be helpful to protect and monitor animals. For this
purpose, it is advantageous to train a machine learning tool to automatically extract the data. Deep convolutional neural networks are versatile, powerful, and
scalable, making them ideal to tackle large and highly complex Machine Learning tasks, such as classifying billions of images (e.g., Google Images), powering
speech recognition services (e.g., Apple’s Siri), or recommending the best videos
to watch to hundreds of millions of users every day (e.g., YouTube).
For using a deep neural network in extracting information from camera-trap
images, we used pre-trained deep neural networks (DNN) and do transfer-learning of our image data.
We used pretrained models and this is because deep learning
works best with a huge quantity of (e.g., millions) labeled images that we don’t
have yet. Our camera-trap images are captured in a National Park in Wyoming state.
May 2020 - February 2021