Catlab.jl VS Octavian.jl

Compare Catlab.jl vs Octavian.jl and see what are their differences.

Octavian.jl

Multi-threaded BLAS-like library that provides pure Julia matrix multiplication (by JuliaLinearAlgebra)
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
Catlab.jl Octavian.jl
4 17
585 222
0.7% 0.0%
9.0 3.9
7 days ago 26 days ago
Julia Julia
MIT License GNU General Public License v3.0 or later
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

Catlab.jl

Posts with mentions or reviews of Catlab.jl. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-02-04.
  • Data Structures as Topological Spaces (2002) [pdf]
    1 project | news.ycombinator.com | 16 Feb 2024
    Related to this, AlgebraicJulia has been doing a lot with applying concepts from algebra and category theory to data analysis and modelling.

    https://www.algebraicjulia.org/

    There's some blog posts that are also interesting:

    https://blog.algebraicjulia.org/

  • Fart Proudly – An Essay by Benjamin Franklin
    1 project | news.ycombinator.com | 19 Aug 2023
    > Maybe I’m just too bitter about academia in this point in my career but it seems like we’ve run out of things to study and/or have too many people doing it.

    We have certainly not run out of things to study, but I think we've hit the limit on what can effectively be communicated through traditional science journals [1], and we need to address the reproducibility crisis through open source science and reconsider the incentive structures around academia [2]. We need to oppose initiatives from people like Bill Gates who wish to privatize science through his various non-profits, as knowledge works better as as commons (we were unable to deal with the pandemic partly because Bill Gates prevented Oxford from open sourcing their work on COVID [3]). We need software that can compose scientific models [4], and organizations that can facilitate greater coordination among scientists. Science will become all the more important in an increasingly uncertain world, but are we up to the task?

    [1] https://www.science.org/content/article/frustrated-science-s...

    [1] https://numfocus.org/open-source-science-initiative-ossci

    [2] https://www.wired.com/story/opinion-the-world-loses-under-bi...

    [3] https://www.algebraicjulia.org/

  • Anyone know whether the source for cl-cat: a DSEL for computational category theory is publicly available?
    3 projects | /r/Common_Lisp | 4 Feb 2022
    Thank you for replying, but what prevents you from releasing your code? Dr Rydeheard has shared the StandardML version from his book (and the book). Of course if you don't want to share your code that is your prerogative and that is fine, but I am just trying to understand the issue that is preventing you a little more clearly. My interest in your implementation is strictly one of personal education. With applied category theory becoming more popular and computing implementations often used for teaching purposes (e.g. this book ) I would like to see a lisp implementation. It is built into Haskell, mostly, and people are developing libraries for Idris and Julia. I would find it instructive to see the implementation in common-lisp. Thank you for taking the time to respond to my original question.
  • From Julia to Rust
    14 projects | news.ycombinator.com | 5 Jun 2021
    The biggest group outside of numerical computing in Julia land are the PL and systems people though? This includes type theorists [1], database folks [2], distributed systems people ([3] to name just one). There are also a fair number of compiler nuts, hence the existence of multiple projects [4][5] in this space. And this is before getting into things that bridge more than one of the domains above, e.g. [7] or [8].

    FTR, I think it's fair to question whether numerical computing should have an outsized influence on the direction of the language. I also think it's a pretty fair comparison to point out how standardized and consistent the Rust governance process is compared to Julia's (the Rust RFC system is an exemplar here). That doesn't mean there is a dearth of PL and systems knowledge in the Julia community though.

    [1] https://github.com/AlgebraicJulia/Catlab.jl

Octavian.jl

Posts with mentions or reviews of Octavian.jl. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-02-22.
  • Yann Lecun: ML would have advanced if other lang had been adopted versus Python
    9 projects | news.ycombinator.com | 22 Feb 2023
  • Julia 1.8 has been released
    8 projects | news.ycombinator.com | 18 Aug 2022
    For some examples of people porting existing C++ Fortran libraries to julia, you should check out https://github.com/JuliaLinearAlgebra/Octavian.jl, https://github.com/dgleich/GenericArpack.jl, https://github.com/apache/arrow-julia (just off the top of my head). These are all ports of C++ or Fortran libraries that match (or exceed) performance of the original, and in the case of Arrow.jl is faster, more general, and 10x less code.
  • Why Julia matrix multiplication so slow in this test?
    2 projects | /r/Julia | 31 May 2022
    Note that a performance-optimized Julia implementation is on par or even outperform the specialized high-performance BLAS libraries, see https://github.com/JuliaLinearAlgebra/Octavian.jl .
  • Multiple dispatch: Common Lisp vs Julia
    4 projects | /r/Julia | 5 Mar 2022
    If you look at the thread for your first reference, there were a large number of performance improvements suggested that resulted in a 30x speedup when combined. I'm not sure what you're looking at for your second link, but Julia is faster than Lisp in n-body, spectral norm, mandelbrot, pidigits, regex, fasta, k-nucleotide, and reverse compliment benchmarks. (8 out of 10). For Julia going faster than C/Fortran, I would direct you to https://github.com/JuliaLinearAlgebra/Octavian.jl which is a julia program that beats MKL and openblas for matrix multiplication (which is one of the most heavily optimized algorithms in the world).
  • Why Fortran is easy to learn
    19 projects | news.ycombinator.com | 7 Jan 2022
    > But in the end, it's FORTRAN all the way down. Even in Julia.

    That's not true. None of the Julia differential equation solver stack is calling into Fortran anymore. We have our own BLAS tools that outperform OpenBLAS and MKL in the instances we use it for (mostly LU-factorization) and those are all written in pure Julia. See https://github.com/YingboMa/RecursiveFactorization.jl, https://github.com/JuliaSIMD/TriangularSolve.jl, and https://github.com/JuliaLinearAlgebra/Octavian.jl. And this is one part of the DiffEq performance story. The performance of this of course is all validated on https://github.com/SciML/SciMLBenchmarks.jl

  • Show HN: prometeo – a Python-to-C transpiler for high-performance computing
    19 projects | news.ycombinator.com | 17 Nov 2021
    Well IMO it can definitely be rewritten in Julia, and to an easier degree than python since Julia allows hooking into the compiler pipeline at many areas of the stack. It's lispy an built from the ground up for codegen, with libraries like (https://github.com/JuliaSymbolics/Metatheory.jl) that provide high level pattern matching with e-graphs. The question is whether it's worth your time to learn Julia to do so.

    You could also do it at the LLVM level: https://github.com/JuliaComputingOSS/llvm-cbe

    For interesting takes on that, you can see https://github.com/JuliaLinearAlgebra/Octavian.jl which relies on loopvectorization.jl to do transforms on Julia AST beyond what LLVM does. Because of that, Octavian.jl beats openblas on many linalg benchmarks

  • Python behind the scenes #13: the GIL and its effects on Python multithreading
    2 projects | news.ycombinator.com | 29 Sep 2021
    The initial results are that libraries like LoopVectorization can already generate optimal micro-kernels, and is competitive with MKL (for square matrix-matrix multiplication) up to around size 512. With help on macro-kernel side from Octavian, Julia is able to outperform MKL for sizes up to to 1000 or so (and is about 20% slower for bigger sizes). https://github.com/JuliaLinearAlgebra/Octavian.jl.
  • From Julia to Rust
    14 projects | news.ycombinator.com | 5 Jun 2021
    > The biggest reason is because some function of the high level language is incompatible with the application domain. Like garbage collection in hot or real-time code or proprietary compilers for processors. Julia does not solve these problems.

    The presence of garbage collection in julia is not a problem at all for hot, high performance code. There's nothing stopping you from manually managing your memory in julia.

    The easiest way would be to just preallocate your buffers and hold onto them so they don't get collected. Octavian.jl is a BLAS library written in julia that's faster than OpenBLAS and MKL for small matrices and saturates to the same speed for very large matrices [1]. These are some of the hottest loops possible!

    For true, hard-real time, yes julia is not a good choice but it's perfectly fine for soft realtime.

    [1] https://github.com/JuliaLinearAlgebra/Octavian.jl/issues/24#...

  • Julia 1.6 addresses latency issues
    5 projects | news.ycombinator.com | 25 May 2021
    If you want performance benchmarks vs Fortran, https://benchmarks.sciml.ai/html/MultiLanguage/wrapper_packa... has benchmarks with Julia out-performing highly optimized Fortran DiffEq solvers, and https://github.com/JuliaLinearAlgebra/Octavian.jl shows that pure Julia BLAS implementations can compete with MKL and openBLAS, which are among the most heavily optimized pieces of code ever written. Furthermore, Julia has been used on some of the world's fastest super-computers (in the performance critical bits), which as far as I know isn't true of Swift/Kotlin/C#.

    Expressiveness is hard to judge objectively, but in my opinion at least, Multiple Dispatch is a massive win for writing composable, re-usable code, and there really isn't anything that compares on that front to Julia.

  • Octavian.jl – BLAS-like Julia procedures for CPU
    1 project | news.ycombinator.com | 23 May 2021

What are some alternatives?

When comparing Catlab.jl and Octavian.jl you can also consider the following projects:

StaticArrays.jl - Statically sized arrays for Julia

OpenBLAS - OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version.

egg - egg is a flexible, high-performance e-graph library

Symbolics.jl - Symbolic programming for the next generation of numerical software

julia - The Julia Programming Language

owl - Owl - OCaml Scientific Computing @ https://ocaml.xyz

Juleps - Julia Enhancement Proposals

Verilog.jl - Verilog for Julia

MacroTools.jl - MacroTools provides a library of tools for working with Julia code and expressions.

Automa.jl - A julia code generator for regular expressions

StaticCompiler.jl - Compiles Julia code to a standalone library (experimental)