SmartSuspend FAQ

How does SmartSuspend release an application license?

Before answering this question a brief description of how SmartSuspend operates. SmartSuspend preloads its shared library "libssr.so" into the application at runtime (using the LD_PRELOAD environment variable). Our library creates an abstraction layer between the application (e.g. Synopsis hsim) and the C standard library (libc). SmartSuspend does not replace libc nor does it require changes to the application binary or Linux kernel.

SmartSuspend takes advantage of its unique position in the communication path between the application and operating system to efficiently release all application resources upon job suspension, including license related resources.

How much overhead does SmartSuspend introduce?

SmartSuspend introduces virtually no performance overhead.

What operating systems does SmartSuspend support?

SmartSuspend supports most all variants of Linux, but its support has been fully verified on the following:

  • Red Hat Enterprise Linux (RHEL) 4 and 5
  • SuSE Linux Enterprise Server (SLES) 9/10/11

How is SmartSuspend licensed?

SmartSuspend is licensed Per physical socket via an annual software subscription.

Does every node in a cluster have to be licensed to run SmartSuspend?

No, only nodes on jobs are to be suspended and resumed.

Which resources can SmartSuspend free?

After suspending a job, SmartSuspend can free the following resources:

  • CPU
  • Application memory (physical memory + swap)
  • FLEXnet floating application licenses

Which application license managers does SmartSuspend support?

The only license management mechanism currently supported by SmartSuspend is FLEXnet.

Does SmartSuspend use FLEXnet tools to release or re-acquire application licenses?

SmartSuspend does not use or require FLEXnet tools.

How does SmartSuspend re-acquire a software license when a job is resumed?

SmartSuspend relies on the application's own license heart beat mechanism to re-acquire a valid license upon job resumption.

How is the memory freed upon suspension?

When SmartSuspend wants to free memory it explicitly tells the OS (via standard memory de-allocation calls) to free the desired memory. In other words, from the perspective of the OS it appears as if the application has asked it to de-allocate memory.

What happens if we are out of memory when a job resumes?

The resource manager is presumed not to allow this situation to occur. In other words, a job should not be resumed if there is not enough virtual memory to accommodate the job. In the event that SmartSuspend encounters an "out of memory" error when resuming a job, it will de-allocate any memory it allocated, and the job will remain suspended. The resource manager may then try to resume the job at another time.

Does a customer require clearance from an application vendor before using SmartSuspend?

No. We don't see any reason why application vendor clearance would be required to use SmartSuspend. The product doesn't require any application modification and doesn't fundamentally change how the application operates.

Are there any applications which cannot be suspended and resumed by SmartSuspend?

We have not come across any application to date that will not work with SmartSuspend. Also, given the product architecture any application should theoretically work with SmartSuspend. The only exception would be an application that statically linked to libc, which is very rare.