Hi Florian, my team is hiring ML compiler engineers who are keen to tackle hard problems in the area of scheduling ML graphs (think LLMs, ConvNets, etc.) onto neural processors with limited memory/parallelism. My team's goal is to develop algorithms to minimize either bandwidth or latency for running inference on these graphs. We work on NP hard problems that are approximated by heuristic algorithm approaches and are looking for smart people who can tackle these tough problems.
Sorry to be completely off topic here as HN does not support private messages or replies to old threads.
A long shot but you may be able to save us countless hours of effort. Over at the OpenJ9 project we're trying to get z/OS testing for our JDK and one of the dependencies is the XML::Parse perl library which depends on libexpat. In [1] you mentioned you worked on porting this to work with EBCDIC. Did you ever succeed? If so are your changes available in open source anywhere?
Indeed, OpenJ9's Pause-less GC is implemented using IBM z14 guarded load instructions and is able to outperform software by 10x in pause times and 3.4x in throughput for a given SLA [1].
The latest one is for z14 [1] and is a very well organized document for compiler writers. I reference it daily while working on the Eclipse OpenJ9 project. Indeed from day to day we mainly work on Linux (Ubuntu 18.04) on our z14 mainframes.
The IBM J9 JVM was open sourced and now lives as the Eclipse OpenJ9 project [1]. We rely on interpreter profiling (block frequency, and value profiling) before the JIT gets it's hands on the method. Once the JIT has determined the cost/benefit is right for a JIT compile we will run through an extended basic block ordering optimization which will lay out the code by block frequency calculated from the taken vs. not taken profiling information on the branch bytecodes given to us by the interpreter.
The persistence portion you mention between runs is our AOT capability in which we are able to cache JIT method compilations on disk and load them between different JVM invocations to greatly speed up startup performance. There is a recent series of blog posts on the AOT technology in OpenJ9 in [2].
Cool project! I'm much more familiar with WPF and Qt Widgets. Is one able to create native looking applications with Qml.Net as an alternative to WPF? I'm currently tied to Windows but would love to be able to support a native look and feel application on Linux and Mac as well.
As an active developer for the compiler component of the Eclipse OMR project I'm happy to answer any technical questions you may have in relation to this position.
Here is the posting if you are interested: https://careers.qualcomm.com/careers/job/446696160715-machin...
Feel free to also contact me directly at fjeremic@qti.qualcomm.com if you are interested and would like to find out more.