CS61kaChow

NumC is a project focused on implementing matrix operations in C, inspired by the functionality of the numpy library in Python.

Overview

NumC is a project focused on implementing matrix operations in C, inspired by the functionality of the numpy library in Python.

Description

  • Built a simple version of Python’s NumPy in C for mathematical and logical operations on arrays and matrices
  • Achieved 1750x speedup for exponential operations and 110x speedup for general multiplications through parallelization techniques and algorithmic optimizations such as SIMD, OpenMP, and Intel AVX intrinsics
  • Applied debugging tools such as GDB and Valgrind, leading to identification and resolution of issues
  • For detailed instructions and specifications, refer to the project spec

Skills

  • Advanced C programming techniques
  • Understanding of Python-C interface for overloading operators
  • Memory management and optimization strategies
  • Error handling and exception throwing
  • Collaboration and teamwork