SCISYNTH: A JOURNEY INTO SCIENTIFIC COMPUTING
Dates: June 10 - June 14, 2024, 9 a.m. - 5 p.m. (Eastern time)
Application deadline April 15th, 2024 midnight, (Eastern time)
Location: Georgia State University, Atlanta Campus, room: GSU Library North, Classroom 1
Cost $200, Limited support available
Lunch and supplies are included with camp attendance
Day Theme: Introduction to Scientific Computing with Python
Session 1: Understanding Scientific Computing
9:00 am – 9:40 am: Opening Keynote
Title: What is Scientific Computing and Why Does it Matter?
Speaker: Suranga Edirisinghe
Description: Explore the fundamental concepts of scientific computing and its significance in various fields.
9:45 am – 10:30 am: Exploring Programming Languages
Title: Overview of Programming Languages for Scientific Computing
Speaker: Sanju Timsina
Description: Dive into the different programming languages available for scientific computing, discussing their pros and cons.
10:30 am - 10:45 am: Networking Break
Session 2: Hands-on Python Labs
10:45 am – 12:00 pm: Lab 1 - Python Support for Scientific Computing
Instructor: Shruti Shrestha
Description: Engage in a hands-on session to understand the extensive support Python offers for scientific computing.
12:00 pm – 1:00 pm: Lunch Break
Session 3: Advanced Python Labs
1:00 pm – 2:30 pm: Lab 2 - Advanced Python for Scientific Computing
Instructor: Chris Childress
Description: Continue the hands-on exploration of Python, focusing on advanced features and applications in scientific computing.
Session 4: Active Learning: Group Projects
2:40 pm – 3:30 pm: Group Project Introduction
Objective: Familiarize participants with the objectives, scope, and expectations of their group projects.
Activities: Presentation of project topics, team formation, and initial brainstorming session.
3:30 pm – 3:45 pm: Short Break
Opportunity: Take a brief pause to recharge and network with peers.
3:45 pm – 5:00 pm: Project Hands-On Time
Objective: Conduct a literature survey of methods used by other researchers for similar projects.
Activities: Research exploration, data gathering, and initial analysis of relevant literature.
5:00 pm: Closing Remarks
Facilitator: Suranga Edirisinghe
Recap the key points discussed during the session.
Address any questions or concerns raised by participants.
Provide guidance on next steps for the project.
Closing: Wrap-up and Q&A
Purpose: Ensure clarity, encourage collaboration, and foster a sense of progress.
Opportunity: Engage in open discussion, share insights from the literature survey, and set goals for the next session.
Day Theme: Understanding Nature through Computational Sciences
Session 1: The Inner Workings of Computers
9:00 pm – 9:40 pm: Understanding Computer Architecture
Speaker: Scott Burns
Description: Uncover what happens inside a computer and gain insights into how it performs mathematical operations.
Session 2: Computational Mathematics Lab
9:45 am – 11:00 am: Lab 3 - Teaching Computers to Do Math
Instructor: Suranga Edirisinghe
Description: Conclude the day with a hands-on lab, guiding participants on teaching computers to perform mathematical tasks.
11:00 am - 11:10 am: Refreshment Break
Session 3: Understanding how heat flows and modeling it in the computer.
11:10 am – 12:00 pm: Real-World Applications - Unraveling Heat Dissipation
Instructor: Suranga Edirisinghe
Description: Gain insights into the practical applications of heat dissipation in real-world scenarios. This session will delve into the mathematical formulation of heat dissipation, helping participants understand the underlying concepts and algorithms involved in heat equation solutions.
12:00 pm - 1:00 pm: Lunch Break
1:00 pm - 1:45 pm: Mastering Python for Solving 1-D Heat Equation
Instructor: Shruti Shrestha
Description: Dive into the fundamentals of writing Python programs to solve the 1-D heat equation. Participants will implement algorithms in heat equation solutions using Python, building a strong foundation in computational problem-solving.
Session 4: Hands-on Python Labs
1:45 pm - 2:30 pm: Hands-On Lab - Tackling 2-D Heat Equation Challenges
Instructors: Sanju Timsina
Description: Apply your knowledge in a practical setting by engaging in a hands-on lab session. Solve complex problems involving the 2-D heat equation using Python under the guidance of expert facilitators. This interactive session promotes a deeper understanding of computational techniques.
2:30 pm – 2:40 pm: Short Break
Session 5: Active Learning: Working on a Research Project
2:40 pm – 3:30 pm: Problem Definition and Mathematical Formulation
Objective: Collaboratively define the problem statement and formulate it into a mathematical framework.
Activities: Brainstorming, discussion, and guidance from facilitator.
3:30 pm – 3:45 pm: Short Break
Opportunity: Refresh, recharge, and network with peers.
3:45 pm – 5:00 pm: Project Hands-On Time
Objective: Write the first computer program to implement the selected algorithm.
Activities: Coding session, troubleshooting, and peer collaboration.
5:00 pm: Closing Remarks
Facilitator: Suranga Edirisinghe
Recap the day's learnings and progress made.
Address any lingering questions or concerns from participants.
Provide additional resources and guidance for continued project development and learning.
Encourage collaboration and communication beyond the session.
Closing: Wrap-up and Q&A
Purpose: Ensure clarity, provide support, and foster a sense of accomplishment.
Opportunity: Engage in open discussion, share reflections, and solidify understanding.
Day Theme: Optimizing Computational Solutions
Session 1: Turbocharge Your Code
9:00 pm - 9:40 pm: Hands-On Lab (cont..)- Tackling 2-D Heat Equation Challenges
Instructors: Sanju Timsina
Description: Apply your knowledge in a practical setting by engaging in a hands-on lab session. Solve complex problems involving the 2-D heat equation using Python under the guidance of expert facilitators. This interactive session promotes a deeper understanding of computational techniques.
9:45am - 10:30 pm: Enhancing Runtime Efficiency and Handling Larger Problems
Instructor: Suranga Edirisinghe
Description: Explore strategies and techniques to improve the runtime efficiency of your programs. Learn how to handle larger-scale problems effectively and optimize your computational approach for better performance.
10:30 am - 10:45 am: Refreshment Break
10:45 pm -12:00 pm: Integrating C Programs with Python - Hands-On Lab
Instructors: Chris Childress
Description: Extend your skills by delving into the integration of C programs with Python. Participate in a hands-on lab session to practice calling C programs from Python and leverage the strengths of both languages. This session provides practical insights into the synergy between different programming languages.
12:00 pm - 1:00 pm: Lunch Break
1:00 pm – 1:40 pm: Performance Optimization Strategies
Instructor: Suranga Edirisinghe
Description: Delve into advanced techniques to optimize the performance of your computational solutions. Discuss best practices, tools, and methodologies for achieving optimal results in heat equation problem-solving. This session will empower participants with the knowledge to enhance the efficiency of their code and tackle computational challenges effectively.
Session 2: Active learning: working on a research project.
2:40 pm – 3:30 pm: Project Initial Presentation and Current Problems Discussion
Objective: Share initial project findings, identify current challenges, and brainstorm solutions.
Agenda:
Brief overview of project objectives and methodology
Presentation of initial findings and results (5 min)
Open discussion on current challenges and roadblocks
3:30 pm – 3:45 pm: Short Break
3:45 pm – 5:00 pm: Project Hands-On Time
Objective: Dive into hands-on work to address identified issues and make incremental performance improvements.
Agenda:
Breakout sessions for focused problem-solving and bug fixing.
Collaborative work on refining methodologies and implementing solutions.
Closing Remarks: 5:00 pm: Wrap-Up and Q&A
Objective: Recap key takeaways, address any lingering questions or concerns, and set goals for future sessions.
Agenda:
Summary of achievements and progress made during the session.
Opportunity for participants to ask questions and seek clarification.
Setting goals and action items for the next session.
Day Theme: Accelerating Scientific Computing with Linear Algebra
9:00 am - 9:30 am: Importance of Linear Algebra in Scientific Computing
- Overview of the Role of Linear Algebra in Computational Science and Engineering
- Importance of Matrix and Vector Operations in Data Analysis, Machine Learning, and Simulation
9:30 am - 10:00 am: Fundamentals of Matrices and Vectors
- Explanation of Matrices and Vectors: Definitions, Properties, and Operations
- Examples of Matrix and Vector Applications in Real-world Problems
- Introduction to Basic Linear Algebra Notation and Terminology
10:00 am - 10:15 am: Break
10:15 am - 10:45 am: Mapping Matrices and Vectors to Computer Memory for Faster Data Access
- Understanding Memory Layout and Data Structures for Efficient Access
- Techniques for Optimizing Data Storage and Retrieval in Computational Tasks
- Case Studies Demonstrating the Impact of Memory Mapping on Performance
10:45 am - 11:15 am: Utilizing Linear Algebra Packages for Solving Scientific Problems
- Overview of Popular Linear Algebra Libraries (e.g., NumPy, SciPy, Eigen, LAPACK, BLAS)
- Demonstrations of Common Linear Algebra Operations and Functions
- Best Practices for Integrating Linear Algebra Packages into Scientific Computing Workflows
11:15 am - 11:30 am: Q&A and Discussion
- Open Floor for Participants to Ask Questions and Share Insights
- Facilitator-led Discussion on Key Concepts Covered in the Morning Sessions
11:30 am - 12:00 pm: Strategies for Efficient Code Implementation
- Introduction to Code Optimization Techniques for Scientific Computing
- Tips for Writing Efficient and Maintainable Code
- Discussion on Strategies for Balancing Performance and Readability in Code Development
12:00 pm - 1:00 pm: Lunch Break
1:00 pm - 1:30 pm: Leveraging Massively Parallel Computing for Runtime Acceleration
- Overview of Parallel Computing Paradigms (e.g., MPI, OpenMP, CUDA)
- Techniques for Parallelizing Matrix and Vector Operations
- Case Studies Highlighting the Benefits of Parallel Computing in Scientific Applications
1:30 pm - 1:45 pm: Break
1:45 pm - 2:15 pm: Networking and Collaboration Opportunities
- Informal Networking Session for Participants to Connect and Share Experiences
- Opportunities for Collaboration on Research Projects and Initiatives
Session 2: Active Learning: Working on a Research Project
2:15 pm - 3:00 pm: Applying Matrix Calculations to Improve Project Runtime
- Guidance on Using Matrix Calculations to Optimize Performance and Efficiency
- Facilitator Support and Feedback on Project Implementation
3:00 pm - 3:15 pm: Break
3:15 pm - 4:00 pm: Hands-On: Code Testing, Profiling, and Performance Optimization
- Practical Session on Testing, Profiling, and Debugging Code
- Techniques for Identifying Performance Bottlenecks and Optimization Opportunities
- Strategies for Iterative Improvement of Code Performance and Efficiency
4:00 pm - 4:30 pm: Group Discussion and Sharing of Insights
- Group Discussion on Challenges Faced and Lessons Learned During the Hands-On Session
- Sharing of Tips, Tricks, and Best Practices for Code Testing and Optimization
4:30 pm - 5:00 pm: Conclusion, Key Takeaways, and Next Steps
- Summary of Day Highlights and Key Learning Points
- Resources and Further Reading Recommendations for Participants
- Opportunities for Continued Learning and Professional Development
Day Theme: Advancing Science through Computational Innovation
Session 1: Expert Overviews
9:00 am - 10:00 am Expert Overview: Computational Chemistry
Invited Guest Speaker: Dr. Samer Gozem
- Gain insights into computational chemistry and its current developments
- Explore career opportunities in computational science
10:00 am - 10:30 am Networking Break
10:30 am - 11:30 am Expert Overview: Brain Science
Invited Guest Speaker: Dr. Jeremy Bockholt
- Discover the latest advancements in brain science through computational approaches
- Learn about potential career paths in computational neuroscience
11:30 am - 12:00 pm Networking Break
12:00 pm - 1:00 pm Lunch
1:00 pm - 2:00 pm Expert Overview: Computer Simulations
Invited Guest Speaker: Dr. Yi Jiang
- Explore the field of computer simulations and its impact on various scientific domains
- Discuss career opportunities in computational modeling
2:00 pm - 2:30 pm Networking Break
Session 2: Advancing Science through Collaboration
2:30 pm - 3:30 pm Project Hands-on
- Presentation of projects
- Feedback and discussion on project improvements and future plans
- Q&A
3:30 pm - 4:00 pm Break
4:00 pm - 5:00 pm Final Project Presentations
- Continuation of project presentations
- Further discussion on enhancements and future directions
- Q&A
5:00 pm - 5:30 pm Closing Remarks