Difference between revisions of "Summer student projects"

From Einstein Toolkit Documentation
Jump to: navigation, search
(claim GetComponents dependency tracking project as done)
(Finished projects)
 
(22 intermediate revisions by 2 users not shown)
Line 5: Line 5:
 
(Entry format: Subproject: Title [Required knowledge -- potential supervisor])
 
(Entry format: Subproject: Title [Required knowledge -- potential supervisor])
  
==Computer Science==
+
==Current projects==
  
* Simfactory: Automate archiving of simulation results [Python -- Erik]
+
* Simfactory: Automate archiving of simulation results [Python -- Roland, Erik]
 
* Simfactory: add and test code to resubmit jobs automatically based on Cactus status return [Python -- Roland]
 
* Simfactory: add and test code to resubmit jobs automatically based on Cactus status return [Python -- Roland]
 
** ICH: already implemented in SimFactory 3
 
** ICH: already implemented in SimFactory 3
 
* Carpet: Collect performance statistics of parallel HPC simulations, output and display these [C++, MPI -- Erik]
 
* Carpet: Collect performance statistics of parallel HPC simulations, output and display these [C++, MPI -- Erik]
 
* Carpet: Design and implement a tree data structure for (integer) bounding boxes [C++ -- Erik]
 
* Carpet: Design and implement a tree data structure for (integer) bounding boxes [C++ -- Erik]
 +
* Carpet: add dynamic memory management for OpenMP task-based prolongation (https://bitbucket.org/eschnett/carpet/branch/rhaas/openmp-tasks) [C++ -- Roland, Erik[
 
* McLachlan: Improve performance of OpenCL code on CPUs [OpenCL, assembler -- Erik]
 
* McLachlan: Improve performance of OpenCL code on CPUs [OpenCL, assembler -- Erik]
 
* McLachlan: Improve performance of OpenCL code on GPUs [OpenCL, GPUs -- Erik]
 
* McLachlan: Improve performance of OpenCL code on GPUs [OpenCL, GPUs -- Erik]
* Cactus: Implement an interface between Cactus and PETSc [C/C++, parallel elliptic solver -- Ian, Erik, Eloisa]
+
* Cactus: Implement an interface between Cactus and PETSc [C/C++, parallel elliptic solver -- Ian, Erik, Eloisa, Roland]
 +
* Carpet: populate Carpet::point_classification [C++ -- Roland, Erik; partially done by Roland]
 +
* Cactus: support HDF5 data in tests [Perl, python -- Roland]
 +
* Cactus: use doxygen or similar to parse grdoc comments and use them to auto-generate cctk reference manual [doxygen -- Roland]
 +
* Cactus: remove need of special scheduling when using PreSync (https://bitbucket.org/einsteintoolkit/tickets/issues/2361) [C, Perl maybe -- Roland, Steve]
 +
* Website: set up mailman3 for ET mailing list including clickable links to archived emails [none -- Roland though needs to be done at LSU]
 +
* Website: produce map of ET users automatically (ticket: https://trac.einsteintoolkit.org/ticket/260) [none -- Roland]
 +
* MoL: fully integrate IMEX operators (https://trac.einsteintoolkit.org/ticket/1066) [C -- Roland, David Radice, Philipp Moesta]
 +
* MoL: finish up RK-prolongation (https://bitbucket.org/cactuscode/cactusnumerical/commits/branch/ianhinder%2Frkprol) [C -- Ian, Roland, Eloisa, Erik]
 +
* Add a Debian style popularity contest (https://bitbucket.org/einsteintoolkit/tickets/issues/2065 [C or python -- Ian, Roland]
  
* Carpet: populate Carpet::point_classification [C++ -- Roland, Erik; partially done by Roland]
+
==Finished projects==
 +
* Carpet: write a single output files per MPI rank rank rather than one per group or one per variable [C++ -- Roland]
 +
* GetComponents: track component inter-dependencies to handle components being checked out into directories provided by others [Perl -- Roland]
 
* Cactus/MoL: investigate performance of Adams-Bashforth time integrators in MoL [none -- Roland, Ian, Erik; summer student at NCSA]
 
* Cactus/MoL: investigate performance of Adams-Bashforth time integrators in MoL [none -- Roland, Ian, Erik; summer student at NCSA]
* Cactus/MoL: add startup cdoe for Adams-Bashforth time integrators to MoL [C -- Roland, Erik, Ian; possible summer student at NCSA]
+
* Cactus/MoL: add startup code for Adams-Bashforth time integrators to MoL [C -- Roland, Erik, Ian; summer student at NCSA]
 
** ICH: is this useful without corresponding code in Carpet to remove the buffer zones?
 
** ICH: is this useful without corresponding code in Carpet to remove the buffer zones?
 
** RH: it is probably not sufficient, but is necessary to get things working. I am still not sure if the buffer zones cannot be removed during checkpoint recovery. It may also be possible without.
 
** RH: it is probably not sufficient, but is necessary to get things working. I am still not sure if the buffer zones cannot be removed during checkpoint recovery. It may also be possible without.
* Cactus: support HDF5 data in tests [Perl, python -- Roland]
+
** this project is done, unfortunately no speedup.
* Cactus: support running tests in parallel [Perl -- Roland]
+
* Cactus: support running tests in parallel (done by Steve and Roland, needs debugging though. [https://bitbucket.org/cactuscode/cactus/src/parallel_testsuite/ Steve's version] and [https://bitbucket.org/cactuscode/cactus/src/e91ef0772b9f6b41f75eb5098689e1a3b7e74278/?at=rhaas%2Fparallel_tests Roland's version]) [Perl -- Roland]
 
+
* Cactus: Provide generic output routines (https://trac.einsteintoolkit.org/ticket/822) ([https://git.ncsa.illinois.edu/rhaas/myio/ Zeran Zhu's code]) [C, C++ -- Roland]
==Finished projects==
+
* Website: move cactuscode.org into GitHub pages repository (almost done: http://lists.einsteintoolkit.org/pipermail/users/2020-February/007264.html) [none -- Steve, Ian]
* <strike>Carpet: write a single output files per MPI rank rank rather than one per group or one per variable</strike> [C++ -- Roland]
+
* Website: investigate using GitHub Actions instead of running our own Jenkins (demo here: https://github.com/EinsteinToolkit/BuildAndTest/) [some scripting -- Ian, Roland, Steve] -- taken: Mohammed Jamial (UIUC, 2020/2021 SPIN term)
* <strike>GetComponents: track component inter-dependencies to handle components being checked out into directories provided by others [Perl -- Roland]</strike>
 

Latest revision as of 15:27, 17 November 2022

Projects for Summer Students

This page lists some projects for summer students, suitable e.g. for an REU student or Google Summer of Code students. Most of these projects are both self-contained and open-ended, and could be extended at will.

(Entry format: Subproject: Title [Required knowledge -- potential supervisor])

Current projects

  • Simfactory: Automate archiving of simulation results [Python -- Roland, Erik]
  • Simfactory: add and test code to resubmit jobs automatically based on Cactus status return [Python -- Roland]
    • ICH: already implemented in SimFactory 3
  • Carpet: Collect performance statistics of parallel HPC simulations, output and display these [C++, MPI -- Erik]
  • Carpet: Design and implement a tree data structure for (integer) bounding boxes [C++ -- Erik]
  • Carpet: add dynamic memory management for OpenMP task-based prolongation (https://bitbucket.org/eschnett/carpet/branch/rhaas/openmp-tasks) [C++ -- Roland, Erik[
  • McLachlan: Improve performance of OpenCL code on CPUs [OpenCL, assembler -- Erik]
  • McLachlan: Improve performance of OpenCL code on GPUs [OpenCL, GPUs -- Erik]
  • Cactus: Implement an interface between Cactus and PETSc [C/C++, parallel elliptic solver -- Ian, Erik, Eloisa, Roland]
  • Carpet: populate Carpet::point_classification [C++ -- Roland, Erik; partially done by Roland]
  • Cactus: support HDF5 data in tests [Perl, python -- Roland]
  • Cactus: use doxygen or similar to parse grdoc comments and use them to auto-generate cctk reference manual [doxygen -- Roland]
  • Cactus: remove need of special scheduling when using PreSync (https://bitbucket.org/einsteintoolkit/tickets/issues/2361) [C, Perl maybe -- Roland, Steve]
  • Website: set up mailman3 for ET mailing list including clickable links to archived emails [none -- Roland though needs to be done at LSU]
  • Website: produce map of ET users automatically (ticket: https://trac.einsteintoolkit.org/ticket/260) [none -- Roland]
  • MoL: fully integrate IMEX operators (https://trac.einsteintoolkit.org/ticket/1066) [C -- Roland, David Radice, Philipp Moesta]
  • MoL: finish up RK-prolongation (https://bitbucket.org/cactuscode/cactusnumerical/commits/branch/ianhinder%2Frkprol) [C -- Ian, Roland, Eloisa, Erik]
  • Add a Debian style popularity contest (https://bitbucket.org/einsteintoolkit/tickets/issues/2065 [C or python -- Ian, Roland]

Finished projects

  • Carpet: write a single output files per MPI rank rank rather than one per group or one per variable [C++ -- Roland]
  • GetComponents: track component inter-dependencies to handle components being checked out into directories provided by others [Perl -- Roland]
  • Cactus/MoL: investigate performance of Adams-Bashforth time integrators in MoL [none -- Roland, Ian, Erik; summer student at NCSA]
  • Cactus/MoL: add startup code for Adams-Bashforth time integrators to MoL [C -- Roland, Erik, Ian; summer student at NCSA]
    • ICH: is this useful without corresponding code in Carpet to remove the buffer zones?
    • RH: it is probably not sufficient, but is necessary to get things working. I am still not sure if the buffer zones cannot be removed during checkpoint recovery. It may also be possible without.
    • this project is done, unfortunately no speedup.
  • Cactus: support running tests in parallel (done by Steve and Roland, needs debugging though. Steve's version and Roland's version) [Perl -- Roland]
  • Cactus: Provide generic output routines (https://trac.einsteintoolkit.org/ticket/822) (Zeran Zhu's code) [C, C++ -- Roland]
  • Website: move cactuscode.org into GitHub pages repository (almost done: http://lists.einsteintoolkit.org/pipermail/users/2020-February/007264.html) [none -- Steve, Ian]
  • Website: investigate using GitHub Actions instead of running our own Jenkins (demo here: https://github.com/EinsteinToolkit/BuildAndTest/) [some scripting -- Ian, Roland, Steve] -- taken: Mohammed Jamial (UIUC, 2020/2021 SPIN term)