Home Skills Projects Blog Publications Personal

Projects

Performance Analysis and Efficient CUDA Implementation of Matrix Arithmetic

In this project, I initially utilized gprof to analyze and visualize execution times of serial code functions, identifying hotspot functions. Further performance insights were gained using the likwid tool to profile memory and floating point operations of the hotspot functions, accompanied by a roofline model visualization. Subsequently, I implemented CUDA to harness loop parallelism within compute functions. This was extended to task parallelism, enabling simultaneous execution of independent compute functions.

Parallelization and Scaling Analysis of 2D Reaction-diffusion System

In this project, I simulated serial and parallelized versions of a variant of FitzHugh-Nagumo model namely, the 2D reaction-diffusion system using OpenMP and MPI. My goal was to compare the performance of the serial code against the parallelized version and investigate weak and strong scaling of the parallel implementations.

Predicting Pulmonary Fibrosis Progression Using Deep Learning.
Code

In this project, we developed a model for patients suffering from pulmonary fibrosis disease using CT scan images of their lungs, clinical metadata, and baseline FVC values. We determined the prognosis of the disease based on the model's predicted FVC value. [Methods: CNN, Linear Regression]

A Machine Learning Approach for Future Career Planning in IT in Bangladesh

Determining whether a job is suitable for a person seeking employment based on their specialization, skills, background, and job descriptions can be challenging. In this project, I collected job-circular data in Information Technology in Bangladesh and developed a model to assist job seekers in comprehending and securing their most desired jobs. [Methods: k-means clustering, PCA]

Gray-Scott Reaction-diffusion System Simulation Software

In this project, our goal was to build agile, responsible, and collaborative software. We created a build system for the Gray-Scott reaction-diffusion system and implemented continuous integration for our git repository. Additionally, we used GoogleTest framework for unit testing.

Software Project Management

In this project, we developed a project management plan by creating a Gantt Chart for the software development of a client company. The tasks carried out during the project’s lifecycle included hiring a data scientist, defining project requirements, reviewing the data provided by the company, selecting the best methods based on the state-of-the-art review, code development, and addressing safety issues.