There's already github.com/janestreet/c... and github.com/janestreet/a..., though it looks like the concurrent scheduler and IO library aren't released yet (and both are very wip). Parallel_scheduler also supports concurrency, but it's work-stealing
There's already github.com/janestreet/c... and github.com/janestreet/a..., though it looks like the concurrent scheduler and IO library aren't released yet (and both are very wip). Parallel_scheduler also supports concurrency, but it's work-stealing
Also fyi, the compiler doesn't pack record/unboxed product fields yet, small ints still take up a word. Arrays of unboxed numbers are packed, though
Our OxCaml concurrency and IO libraries are getting close to usable - would like to see how writing a web server with them compares :^)
hmm yes we should get around to fixing that
π« https://github.com/oxcaml/oxcaml/pull/5299
@docjade.com π¦π¦π¦
Then I dive into the tutorial we held about Oxidised OCaml, the performance-oriented fork at oxcaml.org that @yminsky.bsky.social announced earlier this summer. Try the tutorial in a convenient devcontainer, and take our quiz to help develop the language! @thenumb.at anil.recoil.org/notes/icfp25...
I'll be at ICFP/SPLASH if anyone wants to chat about OxCaml!
And if youβre interested in OxCaml, we have a tutorial on Sunday at ICFP walking through it conf.researchr.org/track/icfp-s... (materials will be online for anyone afterwards. Just the minor detail of finishing writing them first)
wave_tracer 0.1 released
wavetracer.dev
wave_tracer combines path tracing and wave optics in a novel way, for practical general-purpose wave simulations across a variety of EM modalities and applications.
We've seen how to define and apply Monte Carlo integration, but there's a whole world of techniques for reducing variance.
Part five (thenumb.at/QMC) covers Quasi-Monte Carlo: negative correlation, stratified and adaptive sampling, and low-discrepancy sequences.
I had a lot of fun giving this talk in Singapore about the many-years-long saga of multicore OCaml, and in particular, the work over the least 2.5 years of getting it ready for production work within Jane Street's walls.
www.youtube.com/watch?v=XGGS...
I am getting increasingly excited by the runtime metaprogramming extensions coming into OxCaml. They deal with the fundamental non-portability of most of the modern vector extensions in CPUs (across all architectures), but don't expose any of their decision trees in the interface of the OCaml lib
Our #SIGGRAPH2025 paper "Augmented Vertex Block Descent" presents an extremely fast and stable physics solver with hard constraints for handling joints and collisions.
The project page has a 2D demo with source code and more details:
graphics.cs.utah.edu/research/pro...
There's also the aliased key example in the second tutorial (which already works), but that's not exactly what you want
True but those axes are more restrictive than portability/contention, ie every stateless function is already portable and any value captured at immutable could be captured at contended
There is a way to express shared borrowing, but safely using it in parallel tasks will require support for forking local closures
Rendering nerds! Check out our latest work "Vector-Valued Monte Carlo Integration Using Ratio Control Variates" that has just gotten the best paper award at SIGGRAPH 2025. This paper presents a method that reduces variance of a wide range of rendering and diff. rendering tasks with negligible cost.
We've been working on this for years π
I have published my first new blog post in four years lexi-lambda.github.io/blog/2025/05...
Here is a new blog post of mine, where I dive deep into the theory and math behind ReSTIR GI.
Big thanks to Markus Kettunen for verifying the theory, reviewing the article, and catching a key detail I had missed.
agraphicsguynotes.com/posts/unders...
A thread on Monte Carlo integration, Sobol' sequences and our new awesome Siggraph paper "Sobol' Sequences with Guaranteed-Quality 2D Projections". by @dcoeurjo.bsky.social , J-C Iehl, V. Ostromoukhov and me. The tl;dr is our video: www.youtube.com/watch?v=8A4Z...
[1/16]
Apologies for the delay of part 5...
Hence we're making it local π
That's what I'm working on for part 5 :^)
Monte Carlo has many uses, but path tracing is one of my favorites. Part four (thenumb.at/Rendering/) explores how Monte Carlo integration is used to simulate light transport.
Monte Carlo methods require randomly sampling complicated domains, which can be difficult in of itself.
Part three (thenumb.at/Sampling/) discusses how to create samplers using rejection, inversion, and changes of coordinates.
Graphics Programming weekly - Issue 386 - April 6th, 2025 www.jendrikillner.com/post/graphic...
Monte Carlo integration lets us integrate high-dimensional functions exponentially faster than traditional methods!
Part two (thenumb.at/Monte-Carlo/) explores how and why it works.