Client API refactored in v2.1.0

Summary

This release focuses on simplifying the codebase, improving communication semantics, and removing outdated or unused components in preparation for further modularization and modernization.


:white_check_mark: What’s Changed

  • Codebase Cleanup: Removed unused or outdated functionalities from the C API, reducing clutter and improving maintainability.

  • Communication Semantics: Default explicit “termination” signaling for Sensitivity Analysis (SA), matching Deep Learning (DL) flow.

  • Simplified Design: Removed all Sobol-specific group submission logic:

    • Eliminated Sobol value communication between client and server.
    • Removed communicator splitting logic from heat.c.
    • Deleted hardcoded srun/mpirun Sobol group-launching scripts.
  • Improvements

    • Decoupled NxM and round-robin ZMQ communication logic from the Melissa API.
    • Decoupled ZMQ socket communication and messaging
    • Created a separate code for combining MelissaXZMQ client-server message exchanges.
    • Better logging messages.
    • General assertions and error-handling.
  • Documentation: Updated documentation to reflect architectural and interface changes.

Hello,

commit 80130b4a broke the Fortran client API. In particular, the call to melissa_init_f was mandatory to transform Fortran MPI communicator to C communicator with MPI_Comm_f2c.

Sincerely,

Théophile Terraz

Completely forgot to add that. Thanks for noticing. Fixed it in the latest develop: 21afbe2fec958e992851ca980e29bcd54cf11aed