Week 2

Goals

  • Priorities for Scientific Computing

  • Exercise 1: Benchmarking

    • Benchmark functions accurately

    • Predict cost of an algorithm based on Big-O analysis

    • Identify real world complications that affect scaling

  • Exercise 2: Assertions, Unit Tests & Continuous Integration Testing

    • Write effective tests for floating point calculations

    • Reduce bugs via assertions

    • Identify bugs promptly via unit testing

    • Identify bugs promptly via continuous integration testing

    • End-to-end Testing to validate code

  • Exercise 3: Numerical Stability of N-body Integration

    • Integrate differential equations

    • Compare the accuracy and numerical stability of results as a function of time step, order and integration algorithm

    • Appreciate importance of numerical stability

Lessons along the way

Readings

Lab

Lab 2: Best Practices: Assertions, Unit Testing, Continuous Integrations, Benchmarking (due Sept 6)

  • Exercise 1: Benchmarking, Big-O Analysis, Compute vs Memory Limits

  • Exercise 2: Assertions, Unit Tests & Continuous Integration Testing

  • Exercise 3: Numerical Stability of N-body

Additional Resources

Instructions for using ACI

Install Julia & Pluto on your local machine (optional)