Week 3

Goals

  • Exercise 1

    • Recognize significance of memory layout & data structures

    • Optimize serial code

  • Exercise 2

    • Recognize pros/cons of different file formats

  • Class Project

    • Apply "Programming in the Large" to your class project

    • Choose appropriate file format for a project

    • Choose appropriate memory layout & data structures for a project

Lessons along the way

  • Big-O notation

  • File formats: CSV, FITS, HDF5, JLD2

  • Calling Python from Julia

Readings

Lab

Lab 3: Memory Access, Disk I/O, DataFrames (due Sept 13)

  • Exercise 1: Dense Matrix-Vector Multiply: Optimizing serial code, Memory access paterns, Benchmarking

  • Exercise 2: Benchmarking File I/O (no Python dependencies)

  • Exercise 2: Benchmarking File I/O (& Calling Python Packages)

Additional Resources