Skip to content

Commit 6db710c

Browse files
authored
Merge pull request #29 from singhjuhi8856-eng/main
Reltrans: profiling and performance optimization (Juhi Singh)
2 parents 4ae52ec + c8fb9d4 commit 6db710c

1 file changed

Lines changed: 90 additions & 0 deletions

File tree

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
Application Title: Profiling and Performance Optimization of Reltrans using Python-based Analysis and Fortran Integration
2+
Contributor Information :
3+
Name: Juhi Singh
4+
Time-zone: IST (UTC +5:30)
5+
Matrix/slack/IRC Handle: Not given any
6+
Github/forge username: https://github.com/singhjuhi8856-eng
7+
Blog: not yet any
8+
Blog RSS feed:N/A; will update if created
9+
PR link(s):
10+
.
11+
.
12+
Background
13+
Hello Mentors and to everyone reading my proposal, my name is Juhi, and I belong from India. I am a student who's really into business and data(my UG degree is about to get completed after one month). For my Masters, i will be choosing Data Analytics as Majors. I like looking at data and figuring out problems. I also like to see how technology can be used in the world. I have been learning Python, SQL and other Data Visualisations as well. How to work with data. I have been thinking about how to solve problems in a way.
14+
My hobbies include dancing, singing, playing guitar, researching on new and fascinating topics, modelling etc. I also will be starting a business side by side with my Masters.
15+
16+
I do not have a lot of experience with open source work. A beginner you can say. But it would also be wrong to not say strong willed and undetermined.I have been trying to learn about how to control different versions of my work. I want to work with people, on projects. I like to use my skills to solve problems. I think OpenAstronomy is a place to do this because it is very structured. Also, I want to engage with different powerful mindsets and get their views and learn from them. I am here to express my authenticity in my professional life with my skills.
17+
18+
Interest in OpenAstronomy
19+
OpenAstronomy really stands out to me because it brings together science and data and open collaboration. I think it is great that OpenAstronomy helps people work together to make discoveries. The idea of helping to make tools that look at data is very exciting to me. This is because OpenAstronomy helps solve problems that are important and also very hard to figure out.
20+
21+
I found OpenAstronomy interesting. How it handles big sets of data in a smart way. OpenAstronomy is a project that I can learn from and also contribute to. I want to learn more, about how to make things work faster and better and also about how to work with others on coding projects and manage amounts of data.
22+
23+
Project Proposal Application
24+
Proposal Title: Profiling and Performance Optimization of Reltrans using Python-based Analysis and Fortran Integration
25+
26+
Organisation: OpenAstronomy
27+
28+
Summary:
29+
I am still learning about Fortran. My goal is to understand how Python and Fortran work together. I want to see how the Python wrappers interact with the Fortran core. I will use tools to find out what is slowing things down. Then I will try to make it better, with the help of my mentor. I will focus on making the Fortran core and the Python wrappers work together.
30+
I will use things like data structures, vectorization with NumPy and smarter memory handling. My goal is to make the workflows faster without making them less accurate or harder to use.I really like this project because it is about data systems and anaytical work of any sort, intrigues me. I also am interested in Astronomy. During boredom, I dedicate my heart and soul in researching my interest areas and finding out of the box stuff which exists in this world(not something to brag about as such).I am still learning, and I feel this section allows me to showcase my passion. I will be more than happy to learn from feedback and try again as i beleive in imperfections and flaws makes a human, HUMAN. I will make sure to make a significant difference in this project to the best of my abilities. Also, I do not want to be limited to the abilities of my brain.
31+
32+
Deliverables:
33+
34+
1. I will look at the existing data processing pipeline. Find out where it is slow.
35+
36+
2. The data handling methods will be improved.
37+
38+
3. I will test the changes to see how well they work and compare them to the way.
39+
40+
4. We will write down all the changes we make and include instructions on how to use the system.
41+
42+
5. The goal is to make the data processing pipeline work better and to make sure that everyone knows how to use it.
43+
44+
6. Clear instructions will be provided for the new data handling methods and, for the rest of the system.
45+
46+
7. The data processing pipeline and the changes I make will be fully documented.
47+
48+
Period Description
49+
Community Bonding period -
50+
Week 1–2
51+
I will explore the codebase in detail.
52+
The codebase is where I will start.
53+
I need to run examples and set up profiling tools.
54+
The profiling tools I will use are
55+
* Python: cProfile and line_profiler
56+
* Fortran: gprof or the tools that my mentor recommends.
57+
I will record the baseline performance metrics of the codebase.
58+
59+
Week 3–4
60+
Now I need to identify the bottlenecks in the codebase.
61+
The key bottlenecks are the functions and the repeated computations.
62+
I have to focus on the interaction between the Python and Fortran layers of the codebase.
63+
I will document my findings. Validate them with my mentors.
64+
65+
Week 5–6
66+
I will optimize the critical bottleneck in the codebase.
67+
To do this I will improve the computation flow. Reduce the redundant calculations.
68+
Then I will begin benchmarking the improvements I made to the codebase.
69+
70+
Week 7–8
71+
Next I will extend the optimizations to parts of the codebase.
72+
I will improve the memory handling and the execution efficiency of the codebase.
73+
I will test the codebase on datasets or repeated runs.
74+
75+
Week 9–10
76+
Now I need to validate the correctness of the codebase.
77+
I have to ensure that the scientific outputs of the codebase remain unchanged.
78+
I will compare the performance of the codebase before and after the optimizations.
79+
I will fix the edge cases and the bugs in the codebase.
80+
81+
Week 11–12
82+
Finally I will make the optimization refinements to the codebase.
83+
I will document the profiling process and the improvements I made to the codebase.
84+
I will prepare the submission and get it reviewed by my mentor.
85+
86+
The final submission is the step, in optimizing the codebase.
87+
Have you participated previously in GSoC? When? With which project? - No, this is my first time applying.
88+
Are you also applying to other projects? Currently, I am focusing on exploration in my interested area so that I can contribute and prove to be a meaningful asset for this project.
89+
Schedule availability - I assure my availability for this project as per the GSOC time period and in case of any minor incoveniences, I will communicate proactively with my mentors.
90+
Tell us about your plans for holidays during the time of the programme.- Not invested to any plan as such as I am planning to build my job life so am building myself to balance both areas.

0 commit comments

Comments
 (0)