Skip to content

Instantly share code, notes, and snippets.

What would you like to do?

GSoC-21 Work Product

I was selected for GSoC 2021 under the organization Pharo Consortium to work on the project, Matrix State of the Art.

Project Abstract

There are several matrix implementations in Pharo. This project aims to compare all those implementations on different parameters like run-time, space efficiency, and features supported.

Then, the project also aims to recommend an implementation that should be used for most use-cases or suggests writing a new implementation from scratch.

The project also involves building a benchmark UI in pharo-spec that lets users specify the benchmark parameters and execute the benchmarks.

Deliverables Completed

  • A standalone repository to execute and reproduce the results of the benchmarks.
  • Plots of the benchmark results on all the matrix operations supported by the different matrix implementations in Pharo.
  • A pharo-spec2 UI package for user-based execution of the Matrix Benchmarking operations, where the users can specify the parameters of interest, run and visualize results in a graphical way.
  • Making the old Calipel-S benchmark package compatible on the latest stable Pharo 9.0 version. The new CalipeL-S benchmark package can now be used by all Pharo developers to benchmark their operations.


Pull Request Description Status
#209 Implemented exponentiation feature for PMMatrix Merged
#208 Fixed the bug on Strassen Multiplication Merged
#206 Handling negative shapes in PolyMath matrices Merged
#202 Added identity matrix instance creation for PMMatrix Merged
#201 Added an #atRow method to access rows of a matrix Merged
#6, #4 Added tests for AIColumnMatrix and AIDiagonal in Pharo linear algebra package Merged
#7 Optimized matrix multiplication on diagonal matrices Open
#6 Corrected a small mistake in a pharo spec tutorial Merged
#9221 Fixed the bug on Random when large seeds are given Merged
#8896 Added a new method to check if a given character is a double quote or not Merged
#8873 Added tests for Array2D zeros method Merged
Issues Description Status
#207 Identifying bug in cholesky decomposition method Open
#162 Metacello Loading Error in MicroDown Closed
#205 Bug in PMMatrix when invalid shapes are given Closed

Blog Posts

Further Improvements

  • Add Github actions to run tests automatically for pull requests
  • Apart from existing tests, add unit tests for each method
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment