stdlib-js / google-summer-of-code

Google Summer of Code resources.
https://github.com/stdlib-js/stdlib
26 stars 7 forks source link

[RFC]: Compiling SciPy with LFortran (TEST APPLICATION) #38

Closed Pranavchiku closed 6 months ago

Pranavchiku commented 6 months ago

Full name

Pranav Goswami

University status

Yes

University name

Indian Institute of Technology, Jodhpur

University program

BTech. Computer Science and Engineering

Expected graduation

May 2024

Short biography

I am a final year undergraduate in the department of Computer Science and Technology at Indian Institute of Technology, Jodhpur. I have completed following relevant courses in my academic curriculum in past years: Computer Organization and Architecture, Theory of Computation, Operating Systems, Software Engineering, Object Oriented Analysis and Design, Data Structures and Algorithms, Design and Analysis of Algorithms.

Timezone

IST (UTC + 5:30)

Contact details

goswami.4@iitj.ac.in, goswamipranav11@gmail.com

Platform

Mac

Editor

I utilize Ubuntu 22.04 as my preferred operating system, coupled with the Visual Studio Code (VS Code) editor, while also having experience with Atom and PyCharm IDE.

Programming experience

I have strong background in Python 3.x, C++11, Dart and Javascript. I have explored Flutter, Django, ReactJS, REST-APIs as well as having some experience with HTML, CSS during my undergraduate studies. A list of my ongoing and completed work is as follows,

JavaScript experience

Node.js experience

Same as javascript experience

C/Fortran experience

I possess a solid foundation in C programming, acquired during my undergraduate studies as part of the "Introduction to Computer Science" course. Over the years, I have honed my skills through the development of numerous projects and active participation in open-source communities such as LFortran and stdlib-js. With approximately two years of dedicated experience in Fortran programming, I have significantly contributed to the advancement of LFortran, a modern Fortran compiler built on LLVM infrastructure, where I hold the position of a core contributor.

Interest in stdlib

I harbor a profound interest in the advancement of stdlib, primarily driven by its dual significance. Not only does js serve as the cornerstone language for web development, but its growing relevance in the realm of scientific computing is equally compelling. This convergence of web technology with scientific applications within stdlib presents a dynamic and promising landscape, aligning perfectly with my interests and aspirations in software development.

Version control

Yes

Contributions to stdlib

Merged Requests: https://github.com/stdlib-js/stdlib/pulls?q=is%3Amerged+is%3Apr+author%3Apranavchiku+ Open PRs: https://github.com/stdlib-js/stdlib/pulls/pranavchiku Issues: https://github.com/stdlib-js/stdlib/issues?q=is%3Aissue+author%3Apranavchiku+

Goals

Successful completion of this project will result in compilation and execution of majority of fortran files present in SciPy with LFortran. Then, LFortran can be integrated into SciPy build system with minor modifications.

Why this project?

SciPy forms the heart of the scientific python ecosystem. At its core, it also serves as one of the largest open source active (albeit indirect) user base of Fortran 77 codes including PROPACK, FLAPACK etc. These Fortran 77 codes are made available to Python users by the generation of Python-C extension modules with F2PY, which is part of NumPy. F2PY itself is not a compiler, however, and the Python-C extensions are built by a C compiler together with a compatible Fortran compiler in order to allow the usage from Python. Typically, the Fortran compiler used with SciPy is GFortran, although commercial compiler toolchains (Intel, Cray etc.) can also be used.

Qualifications

I have thorough understanding of LFortran & SciPy architecture. I am good at Fortran, C, python programming.

Prior art

NA

Commitment

I am ready to commit 20hrs / Week during the course of GSoC 2024.

Schedule

Assuming a 12 week schedule,

Notes:

Checklist