How SmartSuspend Works
The SmartSuspend Stack
Jaryba SmartSuspend leverages Jaryba's system call abstraction layer technology to seamlessly integrate between an application and the underlying operating system.
Select a layer to the left to get an in-depth look at the technology behind SmartSuspend.
SmartSuspend can support any application from a single threaded process to a massively parallel MPI application. No modifications to the application are necessary in order to take advantage to SmartSuspend's capabilities.
Our customers run a variety of applications in many different fields including but not limited to EDA, semiconductor design, CAE, oil and gas simulation, pharmaceutical research, finite element analysis, and atmospheric modeling.
The core technology of SmartSuspend consists of a dynamic library that is preloaded into your application at runtime. This library is positioned between the application and the system libraries in order to monitor all resources utilized by the application.
A variety of resources are tracked such as memory allocation, CPU usage, thread and process creation, and software license usage. When the time comes to suspend the application SmartSuspend interrupts the program and releases those resources back to the system. Upon resumption SmartSuspend reallocates those resources and continues execution.
System libraries provide the common Linux system call interface utilized by most every modern application. These system calls facilitate the allocation of memory, process creation, threads, IPC, and file and network I/O.
SmartSuspend intercepts system calls from the application to the following libraries: libc, librt, libpthread, and libibverbs which provides Infiniband support.
Since our dynamic library is loaded at runtime, it is not necessary to modify the operating system or install special kernel modules to take advantage of SmartSuspend's capabilities.
SmartSuspend has been validated and tested against many enterprise Linux distributions. We currently offer official support for RHEL/CentOS 4/5 and SLES 9/10/11
The SmartSuspend library intercepts all process and thread creation calls to build the set of threads and processes to suspend or resume. SmartSuspend manages both serial and parallel jobs, tracking all threads and processes on all machines used by the job.
To achieve license suspension, SmartSuspend intercepts calls made to the FLEXnet licensing server. This interception is performed regardless of the manner in which FLEXnet software is integrated into the application. This interception does not manipulate license counts, but instead sets the environment such that the licenses are immediately checked back into the license server when the application is suspended.