Replies: 2 comments 2 replies
|
Nicely done, @avinxshKD! We should think of whether a "CONTROL-CORE-4" paper is possible, starting from where Saksham left behind in his CONTROL-CORE-3 paper from GSoC 2025. Perhaps something @mayureshkothare and I discuss more. But think about any potential for benchmarks. Like, why Julia? Can we have some qualitative or quantitative comparisons with the prior (i.e., before your contributions) CONTROL-CORE languages vs Julia implementation. |
|
Hey @pradeeban thank you so much. For comparisons, I can look at Julia vs Python on parser/format/read-write/control-loop paths, FileBackend vs MmapBackend vs ZMQBackend on the same workload (we have this in my proposal too) and mixed Python <-> Julia studies. I can also include qualitative points like native Julia implementation, safe parsing without eval, optional ZMQ dependency, and CI/test coverage. I’ll put together a small benchmark/comparison plan before running larger experiments (will first ask you), so we can decide what is useful for a research note or possible paper. And to be honest, I don't have much experience with research papers, but would love to learn from you :p. |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Hey @pradeeban
Here is a summary of my contributions leading up to the GSoC mid-evaluation period, along with my plan for the work after mid-evaluation.
Completed so far (before midterm):
Landed the root-level concore.jl implementation in the main repo.
This includes the core Concore API: concore_read, concore_write, initval, unchanged, config/params loading, maxtime, safe parsing, and FileBackend as the default communication backend.
PR: Add Julia concore core runtime #552
Added Julia demo nodes for mixed Python+Julia file-backend studies.
This includes Julia controller/plant model demo nodes and a small runner to verify both Python-to-Julia and Julia-to-Python directions.
PR: Add Julia mixed demo nodes #553
Added the first set of Julia tests for the core implementation.
These cover parser behavior, config loading, sync behavior, and protocol read/write behavior.
PR: tests/julia: add julia tests #554
Added interop and wire-compatibility tests.
These cover Julia/Python round-trips, Julia/C++ checks where available, and exact wire-format compatibility. This checks actual language interaction.
PR: tests/julia: add interop and wire compatibility tests #555
Added Julia CI.
The CI now runs tests/julia/runtests.jl on Ubuntu and Windows with Julia 1.10 and latest stable.
PR: Add Julia test matrix to CI #556
Added opt-in MmapBackend.
FileBackend remains the default, while MmapBackend can be selected explicitly. The tests check parity with the file backend. It is an optional faster local backend.
PR: concore.jl: add mmap backend #557
Added ZMQ backend.
ZMQ.jl remains optional. The normal Julia tests still run without ZMQ.jl, and the live REQ/REP test runs when ZMQ.jl is available. This follows the Python ZeroMQPort style using named ports.
PR: concore.jl: add optional ZMQ backend #558
Current status:
So far, the core Julia protocol is upstream, file transport is the default path, Julia demo nodes are present, the Julia tests are running in CI, and the opt-in Mmap and ZMQ backends are now in place.
My first priority around midterm is to keep the Julia work stable and address any follow-up feedback from the merged backend work.
Plan after mid-evaluation:
Work on concoredocker.jl, matching the existing concoredocker.py interface with Docker-style absolute paths and parameter loading.
Add the Julia Dockerfile/container setup so Julia nodes can be used in the existing Docker-based Concore workflows.
Add Docker-based mixed-language studies, especially Python plant to Julia controller and Julia plant to Python controller, to verify the real container workflow.
Package the benchmark work more cleanly: FileBackend vs MmapBackend vs ZMQ, and Julia vs Python on the same workloads.
Continue transport parity testing across FileBackend, MmapBackend, and ZMQ.
Prepare the benchmark methodology/results writeup for the research-note part of the project.
Add final documentation after the implementation stabilizes: API reference, getting-started notes, backend selection, and wire-format notes.
Please let me know if there is anything I should adjust or prioritize for the next phase.
cc @Rahuljagwani @mayureshkothare
All reactions