• Opensource Tools for Scientific Computation

    February, 18 2023, Noor E Karishma Shaik

    Summary

    Open-source tools offer a cost-effective alternative for scientific computation and AI research. This post presents five open-source alternatives to MATLAB: Octave, Julia, Scilab, NumPy, and Sage. While commercial counterparts may offer more streamlined development, open-source alternatives are free and supported by a strong community of users and developers, providing access to numerous resources.

    Article by Arjun Shetty, Senior Editor at IMPACT Blog.

    What is open source? Open source is software that is available for anyone to see, modify and redistribute the code. Open source is usually distributed with its source code and the users are free to modify the code, create their own flavours of these tools and then redistribute them. These distributions are usually done under a distribution license like GNU general public license, MIT license, Apache license, BSD license and so on.

    This feature of open-source software that allows a large base of users (typically distributed across geographies) to read, debug and modify code tends to make open-source alternatives much more resilient and robust. On the downside, the developers are usually volunteers and thus the development efforts may not be as streamlined and new version releases and bug fixes for open-source software may come on a less predictable timeline compared to their commercial counterparts.

    In this blog, we are looking at the alternatives to MATLAB for scientific computing and artificial intelligence. MATLAB is arguably the most popular go-to option for scientists and engineers in data analysis, computing and algorithm development. Some of the biggest reasons for MATLAB’s success are using matrices as the primary data object, its intuitive syntax and its simple programming environment. However, these come at a cost. Here are some of the free and open-source alternatives available to anyone who cannot afford a MATLAB license.

    Matlab Alternatives:

    Octave: Octave is probably the closest to MATLAB in terms of syntax and compatibility and is widely considered to be one of the best alternatives to MATLAB. Octave runs on Windows, Linux and Mac. Octave is distributed under the GPL. Most projects developed in MATLAB can run in Octave and vice versa. Octave can run interactive and batch jobs as well.

    Pros: Syntax closest to MATLAB

    Cons: Slower than MATLAB, small user community

    Julia: Julia is currently the fastest-growing alternative to MATLAB. Developed by a team at MIT, it is designed to be as fast and efficient as possible. Julia has ‘toolboxes’ that allow it to be tailored for domain-specific purposes. Julia is a dynamically typed programing language and has built-in features for parallel computing, matrix manipulation, data visualisation and more.

    Pros: Faster than MATLAB

    Cons: Not easy to integrate into other languages, large memory consumption, newer than and not as mature as its alternatives

    Scilab: Scilab is another open-source option for scientific computing that runs across Windows, Linux and Mac. Scilab is the second best-known MATLAB alternative (after Octave). It is very similar to MATLAB but unlike Octave, compatibility with MATLAB was not one of the major goals of the developers.

    Pros: Performance is almost at par with commercial options. Particularly fast for parallel processing. Close enough to MATLAB to not require a steep learning curve.

    Cons: Lagging behind MATLAB in terms of solver precision and ability to embed code

    NumPy: This is a package of Python and is primarily the package that is used when using Python for scientific computing. Naturally, it comes with all the advantages of Python, is fast and versatile and supports a wide range of hardware and computing platforms. NumPy offers vectorised operations that are not supported by Python. NumPy is an excellent substitute for MATLAB with the advantages of Python

    Pros: All the advantages of python and access to a huge number of python libraries

    Cons: Slower than MATLAB for pure computations. Installation of libraries can be harder for beginners.

    Sage: SageMath is a good option that offers a middle-of-the-line solution between MATLAB and Python. It is built using Python scientific computing libraries and offers a syntax similar to MATLAB. Also offers a command line interface and embedded tools for mathematical computing.

    Pros: Uses the best parts of many different languages

    Cons: Not as efficient as MATLAB and Python. Loses some efficiency due to incorporating many features from different languages.

    This is only a small guide to open-source alternatives to MATLAB for students and young professionals. Have you used any of these or other tools as alternatives to MATLAB? Let us know your open-source preferences in the comments below or email us at impactblog@ieee.org.

    Photo of Arjun Shetty, Senior Editor, IMPACT BlogArticle Contribution: Arjun Shetty (Senior Editor, IMPACT Blog) is currently working as a Device Engineer at Intel Corporation. Prior to this, he worked as a Postdoctoral Fellow at the Institute for Quantum Computing, University of Waterloo, Canada. He obtained his PhD from the Centre for Nano Science and Engineering, Indian Institute of Science.