ioos / gsoc

Information about IOOS activities for Google Summer of Code
BSD 3-Clause "New" or "Revised" License
22 stars 10 forks source link

OCSMesh Improvement #58

Open SorooshMani-NOAA opened 6 months ago

SorooshMani-NOAA commented 6 months ago

Project Description

OCSMesh is an open source tool for preparation of unstructured mesh for coastal ocean model

Getting started with OCSMesh:

The code was developed while trying to abide by object oriented design principles. We'd like to make the API more intuitive and generally improve the performance of the application. The improvements in mind includes, but are not limited to:

Expected Outcomes

Improved OCSMesh on a dev branch which is ready to be merged to main

Skills required

Soroosh Mani (@SorooshMani-NOAA), Atieh Alipour (@AtiehAlipour-NOAA)

Expected Project Size

350

What is the difficulty of the project?

Intermediate

Jaeun-Shin commented 5 months ago

Hello @SorooshMani-NOAA and @AtiehAlipour-NOAA,

My name is Jaeun Shin, an incoming engineering student at University of Cambridge. I have a strong interest in programming and environmental science. I've explored OCSMesh and am captivated by its mission to facilitate the preparation of unstructured mesh for coastal ocean modeling. I'm keen on contributing, especially in performance optimization and mesh generation enhancements, as part of Google Summer of Code.

Regarding distributed computing in OCSMesh, could you share insights on specific bottlenecks with the current multiprocessing approach? How do you see Dask improving these aspects, and what are the priorities for ensuring compatibility and performance across different environments?

Looking forward to potentially contributing and learning with your team!

SorooshMani-NOAA commented 5 months ago

Hi @Jaeun-Shin, thank you for showing interest in this project.

From a high level, in a simple workflow OCSMesh processes input raster files to:

  1. Extract the domain of meshing (based on elevation, etc.)
  2. Calculate a field of element sizes within the domain.

Of course there are other possible workflows, but let's ignore them for now.

The main bottleneck is in processing these rasters efficiently:

Other than that there are other areas of improvements

I hope that makes things a bit clearer.

Jaeun-Shin commented 5 months ago

Thank you for the clarification. It precisely highlighted where this project can be enhanced. I will delve into Dask and the codebase to propose a more effective solution in my proposal.