I was selected for GSoC 2021 under the organization Pharo Consortium to work on the project, Matrix State of the Art.
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.
- 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 |
- Building a simple application with Spec2 - A tutorial on implementing a GUI application in Pharo with the help of Spec2 package
- PMMatrix in Pharo: Usage - Tutorial on the usage of PMMatrix implementation in the PolyMath library, with example use-cases and comparison to NumPy in Python
- GSoC First Evaluation Progress - Documentation of the progress on the project before the first evaluation
- How to Use Iceberg - Iceberg tutorial for Pharo beginners
- Add Github actions to run tests automatically for pull requests
- Apart from existing tests, add unit tests for each method