Saturn 1.0: Data structures for OCaml Multicore
Announcing the 1.0 release of Saturn, a library of efficient, tested, concurrent data structures ready to use with OCaml 5.
Communications Officer
Discover our latest posts on #multicore and explore related insights and stories.
Saturn 1.0: Data structures for OCaml Multicore
Announcing the 1.0 release of Saturn, a library of efficient, tested, concurrent data structures ready to use with OCaml 5.
Communications Officer
How TSan Makes OCaml Better: Data Races Caught and Fixed
Parallel programming opens up brand-new possibilities. Using multiple cores means that users can benefit from powerful OCaml features (like formal proofs and high security) while enjoying greater performance, enabling them to improve their services or projects. However, introducing such a significan…
Senior Software Engineer
Senior Software Engineer
Communications Officer
Deep Dive: Optimising Multicore OCaml for Windows
We love hosting internships. It is rewarding to potentially facilitate someone’s first foray into the OCaml ecosystem, helping them establish a hopefully life-long foothold in the world of open-source programming. It is also a great opportunity to get new perspectives on existing issues. Fresh eye…
Communications Officer
Under the Hood: Developing Multicore Property-Based Tests for OCaml 5
In 2022, Multicore OCaml became reality. Programming on multiple threads brings new possibilities, but also new complexities. In order to foster confidence in OCaml 5 and retain OCaml's reputation as a trustworthy and memory-safe platform, Tarides has developed multicoretests: Two property-based tes…
Principal Software Engineer
Multicore Testing Tools: DSCheck Pt 2
Welcome to part two! If you haven't already, check out part one, where we introduce DSCheck and share one of its uses in a naive counter implementation. This post will give you a behind-the-scenes look at how DSCheck works its magic, including the theory behind it and how to write a test for our nai…
Senior Software Engineer
Communications Officer
Eio 1.0 Release: Introducing a new Effects-Based I/O Library for OCaml
The OCaml 5 update brought much-anticipated support for programming on multiple cores. It also introduced support for concurrency via effect handlers – one of the first mainstream languages to do so. This significant update has had profound performance and UX implications, propelling OCaml into ne…
Communications Officer
Principal Software Engineer
Advisor
Multicore Testing Tools: DSCheck Pt 1
Reaping the plentiful benefits of parallel programming requires the careful management of the intricacies that come with it. Tarides played a significant part in making OCaml Multicore a reality, and we have continued to work on supporting tools that make parallel programming in OCaml as seamless as…
Senior Software Engineer
Communications Officer
Are Your Programs Doing What You Think They're Doing? Introducing Monitoring Tools for Multicore OCaml
As programs grow in size and complexity, they become more challenging to optimise. When the cause of a particular performance issue can theoretically be attributed to multiple sources, developers need concrete data to drive their decision making and avoid time-consuming guesswork. As you can imagine…
Communications Officer
What are Data Races? And do They Threaten Your Business?
Imagine you have a brand-new coffee machine. One morning, you traipse excitedly down the stairs only to discover that, alas, your appliance has turned into a potato. The next day, it turns back into a coffee machine. And so it continues: on some days, it dispenses you perfect, frothy coffee; on othe…
Communications Officer
Off to the Races: Using ThreadSanitizer in OCaml
OCaml Multicore opened up a new world of performance for developers, something that Nomadic Labs has tested with great results. Rather than relying on one core to do everything, the program can take advantage of multiple cores simultaneously for a significant performance boost. With new programming …
Senior Software Engineer
Senior Software Engineer
Communications Officer
Tutorial: How to Port Lwt Applications to Eio
Thomas Leonard and Jonathan Ludlam hosted a tutorial on porting Lwt applications to OCaml 5 and Eio at arguably the world's largest functional programming conference: ICFP. The tutorial is a great introduction to Eio, with a clear step-by-step approach that is accessible to developers of different e…
Communications Officer
Kcas: Building a Lock-Free STM for OCaml (2/2)
This is the follow-up post continuing the discussion of the development of Kcas. Part 1 discussed the development done on the library to improve performance and add a transaction mechanism that makes it easy to compose atomic operations without really adding more expressive power. In this part we'll…
Principal Software Engineer
Kcas: Building a Lock-Free STM for OCaml (1/2)
In the past few months I've had the pleasure of working on the Kcas library. In this and a follow-up post, I will discuss the history and more recent development process of optimising Kcas and turning it into a proper Software Transactional Memory (STM) implementation for OCaml. While this is not me…
Principal Software Engineer
Making OCaml 5 Succeed for Developers and Organisations
OCaml recently won the ACM SIGPLAN PL Software Award. The award recognises a software system that has had a significant impact on programming language implementation, research, and tools. It is especially notable that 4 out of the 14 named OCaml compiler developers are affiliated with Tarides: Anil,…
The Journey to OCaml Multicore: Bringing Big Ideas to Life
Continuing our blog series on Multicore OCaml, this blog provides an overview of the road to OCaml Multicore. If you want to know how you can use OCaml 5 in your own projects, please contact us for more information. We also recommend watching KC Sivaramakrishnan's ICFP 22' talk Retrofitting Concurre…
Communications Officer
OCaml 5 Multicore Testing Tools
The new version of OCaml 5 is here! It brings the ability to program multicore applications and to maximise our usage of all the CPU cores without a global lock getting in the way of performance. What's most exciting to me though is that we have a whole new way of writing... bugs! And with so much p…
Principal Software Engineer
How Nomadic Labs Used Multicore Processing to Create a Faster Blockchain
The technology that makes blockchain possible is complex, cutting-edge, and fascinating. Balancing efficiency and security on a knife's edge, it finds perfect harmony between high transaction speeds and safe, predictable results. Blockchain technology is constantly evolving, pushing the boundaries o…
Communications Officer