CSlib, a client/server messaging library for coupling scientific applications

"The medium is the message. -- Marshall McLuhan
"My life is my message. - Mahatma Gandhi
"If you want a love message to be heard, it has got to be sent out. - Mother Teresa

This is the home page for the client/server messaging library (CSlib). It is a lightweight implementation of the client/server model suitable for coupling two scientific applications runnning in serial or parallel.

Open source GitHubLatest features & bug fixesContribute

The client/server model is a messaging paradigm, used ubiquitously by web-based applications, where one or more clients (e.g. your phone) communicate with a server (e.g. a website). In the context of the CSlib, it can used to couple two scientific applications (apps) together where one app acts as the "client" and the other as the "server". The client sends messages to the server requesting it perform specific computations and return the results.

Advantages of this mode of coupling, supported by the CSlib, are as follows:

A limitation of the CSlib, is that it's meant for loose coupling of two apps when the cost of the data exchange is not performance-critical. It is not designed for tight-coupling scenarios where large volumes of data need to be exchanged rapidly between large numbers of processors. Other kinds of messaging paradigms and toolkits exist for that purpose. See the intro page of the CSlib manaul for some links.

The CSlib is used in LAMMPS, a parallel molecular dynamics (MD) code, via its MESSAGE package. These example use cases are included in the LAMMPS distribution:

The CSlib is an open-source code, distributed freely under the terms of the modified Berkeley Software Distribution (BSD) License. See this page for more details. It was developed at Sandia National Laboratories, a US Department of Energy facility, for use in coupling scientific applications running on desktop machines to large supercomputers. Funding for the CSlib came from DOE's Office of Advanced Scientific Computing Program (OASCR) under the auspices of its Exascale Computing Program (ECP).

The author of the CSlib is Steve Plimpton, who can be contacted at sjplimp at sandia.gov.

Recent CSlib News