|
| 1 | +--- |
| 2 | +title: 'NASA ROSES E7 Grant: Reinforcing the Fondations of Scientific Python' |
| 3 | +author: matti-picus |
| 4 | +published: Aug 10, 2022 |
| 5 | +description: 'Announcing a 3-year program to improve NumPy, SciPy, pandas, and scikit-learn' |
| 6 | +category: [Funding] |
| 7 | +featuredImage: |
| 8 | + src: /posts/nasa-rose-grant-2020/scientific_python_ecosystem.png |
| 9 | + alt: 'River of scientific python projects, flowing from Python and NumPy, to |
| 10 | + Foundational projects, to technique-specific projects, to domain-specific |
| 11 | + projects, to applications.' |
| 12 | +hero: |
| 13 | + src: /posts/nasa-rose-grant-2020/scientific_python_ecosystem.png |
| 14 | + alt: 'River of scientific python projects, flowing from Python and Numpy, to |
| 15 | + Foundational projects, to technique-specific projects, to domain-specific |
| 16 | + projects, to applications.' |
| 17 | +--- |
| 18 | + |
| 19 | +### Announcement of the grant being awarded |
| 20 | + |
| 21 | +We are happy and proud to announce that the [NASA ROSES 2020](https://science.nasa.gov/researchers/sara/grant-solicitations/roses-2020/release-research-opportunities-space-and-earth-science-roses-2020) |
| 22 | +program, specifically the [Support for Open Source Tools, Frameworks and Libraries](https://nspires.nasaprs.com/external/solicitations/summary.do?solId=%7B958CF134-D655-E512-B5AD-84501D14A0C1%7D&path=&method=init) |
| 23 | +component, has accepted [a |
| 24 | +proposal](/posts/nasa-rose-grant-2020/NASA_project_proposal.pdf) |
| 25 | +from the scientific Python community. The |
| 26 | +[selection](https://nspires.nasaprs.com/external/viewrepositorydocument?cmdocumentid=843923&solicitationId={958CF134-D655-E512-B5AD-84501D14A0C1}&viewSolicitationDocument=1) |
| 27 | +is for a 3-year, $385,385 per year grant, which will be split between the participating |
| 28 | +projects: [scikit-learn](https://scikit-learn.org), |
| 29 | +[pandas](https://pandas.org/), [SciPy](https://scipy.org/) and |
| 30 | +[NumPy](https://numpy.org/). |
| 31 | + |
| 32 | +### Backstory |
| 33 | + |
| 34 | +Once the NASA ROSES funding proposal opened, the working group began creating a |
| 35 | +proposal that answered the conditions of the program. The proposal was based on |
| 36 | +an earlier |
| 37 | +[rejected NSF proposal](https://figshare.com/articles/journal_contribution/Mid-Scale_Research_Infrastructure_-_The_Scientific_Python_Ecosystem/8009441). |
| 38 | +Many of the authors of the NSF proposal were also involved in the successful |
| 39 | +NASA ROSES proposal. The process of pulling the proposal together: laying out |
| 40 | +the scope of the program, splitting the grant writing into sections, and |
| 41 | +overall cooperation between the groups was in and of itself helpful to get many |
| 42 | +of the people at the core of scientific Python together. |
| 43 | + |
| 44 | +### Deliverables |
| 45 | + |
| 46 | +This [Gantt chart](/posts/nasa-rose-grant-2020/NASA_project_workplan.pdf) |
| 47 | +summarizes the primary deliverables of the project: |
| 48 | + |
| 49 | +- Ongoing work with issue triaging & code review, maintenance, CI & packaging |
| 50 | + improvements |
| 51 | +- Creating a joint infrastructure for running benchmarks and create both |
| 52 | + micro-benchmarks and more general benchmarks for the projects |
| 53 | +- Use NumPy's new dtype infrastructure to create a flexible Unicode string |
| 54 | + type, and integrate that into pandas |
| 55 | +- More NumPy SIMD performance improvements |
| 56 | +- Move forward with Array API Standard adoption |
| 57 | +- Extend the use of Numba UDFs in pandas |
| 58 | +- Optimize pandas' memory usage, and implement Cython performance optimizations |
| 59 | + in sckit-learn |
| 60 | +- Add support for CuPy and Dask to SciPy and scikit-learn via the Array API |
| 61 | + standard |
| 62 | +- Add a framework for parallelization to SciPy |
| 63 | +- Add large-scale optimization routines to SciPy |
| 64 | + |
| 65 | +The goals are quite ambitious given the amount of funding. They leverage |
| 66 | +synergy between the projects and underlying standards to move the entire |
| 67 | +scientific Python community forward. |
| 68 | + |
| 69 | +### Who will be doing the work |
| 70 | + |
| 71 | +The work will be executed by a mix of experienced maintainers and new talent |
| 72 | +recruited specifically for the project. Due to restrictions from the funders, |
| 73 | +research (which includes most or all work on new features) will be primarily |
| 74 | +executed by people in the United States, while the international team will take |
| 75 | +on the engineering and contributor tasks. Some of the work will be |
| 76 | +subcontracted to LANL and Cal Poly. |
| 77 | + |
| 78 | +The grant will be administered via a committee. Dharhas Pothina, Quansight's CTO, |
| 79 | +is the PI. Leaders of the participating projects will advise and monitor |
| 80 | +activities and changes in scope to make sure they are aligned with what the |
| 81 | +projects need most. |
| 82 | + |
| 83 | +### Final thoughts |
| 84 | + |
| 85 | +This is a significant milestone in the growing stream of funding flowing |
| 86 | +towards community-driven Open Source - and to scientific Python projects in |
| 87 | +particular. The grant is one of the first to specifically fund cross-project |
| 88 | +collaboration, in a way that will leverage common interests toward improving |
| 89 | +the entire ecosystem. Institutional funders are realizing that we are indeed a |
| 90 | +web of interlinked projects supported by a community of contributors, and we |
| 91 | +are thankful to NASA for the opportunity to spearhead this new model. |
| 92 | + |
| 93 | +We'll provide updates in future blog posts as well as on the mailing lists of |
| 94 | +the project involved as we achieve significant progress toward the goals of the |
| 95 | +grants. |
| 96 | + |
| 97 | +These are exciting times, funding for core PyData projects is accelerating. |
0 commit comments