Concurrent Network Licenses

From Jacket Wiki

Jump to: navigation, search
Back to License Types

Contents

Overview

Concurrent Network Licenses are for installations on an unlimited number of systems sharing a fixed number of license keys. This setup is made possible through the installation and maintenance of a network license server. All the client machines connect to the server and checkout license features from the server. The server maintains knowledge about concurrent usage and limits the usage based on the number of purchased keys. Concurrent Network Licenses include the following features:

  • Floating license for all client machines.
  • Allows for unlimited users and unlimited machines, but is restricted in the number of concurrent sessions which may be run at any given time. The license server is installed on a machine from which all users much be able to checkout the license keys.
  • Configurations supported include:
    • Single-Node, Single-GPU
    • Single-Node, Multi-GPU (via Jacket MGL)
    • Multi-Node, Multi-GPU (via Jacket HPC)
  • The license server is node-locked to a single Host ID (which is the server's MAC address)
  • Concurrent Network Licenses are available for Windows 32-bit/64-bit, Linux 32-bit/64-bit, or Mac 32-bit servers.


Generate Licenses & Download

After purchasing a Concurrent Network License, the "Purchased Concurrent Network Licenses" section of the Manage Licenses page will become visible to you. From this section, you can obtain the appropriate license files and license server executables.

CNL page.png

Download License

In the top portion of the "Purchased Concurrent Network Licenses" section, you can generate and download the license file. Note: the same license file is used by the server and all of the client computers.

  • Enter the Host ID, IP, and Port of the server machine that will be running the license server software. The Host ID is the primary MAC address of the server.
  • After entering these values click "Submit Host Information".
  • Once the page refreshes click the "Download License" link.
    • For the server machine, this license file must be placed in the same directory as the server package that you will download in the next step.
    • For the client computers, this license must be placed in the <jacket_root>/engine directory of the Jacket installation. Client computers can obtain the Jacket software from the Download Page.


For Jacket HPC systems: If you are trying to set up a concurrent licensing system for a Jacket HPC cluster, please ensure you select a different port from what will be used by MATLAB's mdce service (this is typically 27000).

If you would like to know more, please contact Support.

Download Server

In the bottom portion of the "Purchased Concurrent Network Licenses" section, you can download the license server. Concurrent Network Licenses are available for Windows 32-bit/64-bit, Linux 32-bit/64-bit, or Mac 32-bit servers. Choose the download link which matches the operating system of the computer where you will install the license server.

Server Installation

These installation steps are the same for all operating systems. In Windows, you will run these steps from the Command Prompt (Run -> cmd). In Linux and Mac, you will run these steps from the Terminal or Shell.

Installing the Server

The server is installed simply by creating a server directory, unpacking the server files into that directory, and putting the jlicense.dat file into the server directory.

  • Uncompress the server package.
    • For Windows, unzip the packages. Three files are part of the license server directory: jacket.exe, lmgrd.exe, and lmhostid.exe
    • For Linux or Mac, untar the packages. Three files are part of the license server directory: jacket, lmgrd, and lmhostid. Untar with tar xzfvp cn-jacket-<OS>-<arch>.tgz.
  • Query the server machine with the following commands:
cd cn-jacket-<OS>-<arch>
lmhostid
  • Select the desired TCP/IP port for the server to listen on. This should match exactly the port specified in the generated license.
  • Also verify this matches the Host ID specified in the generated license.
  • Place the jlicense.dat file generated above into the directory containing the server files.

Starting and Stopping the License Server

At this point, the license server may be run manually via the following at the command line within the license server directory,

lmgrd -c jlicense.dat

Note: The lmgrd.exe depends on the jacket.exe file and both must exist in the license server directory.

To check that the license server is running, simply search for a running process called lmgrd.

To manually bring the server down, simply kill the lmgrd process.

Note that this may also generate messages on the client ('claire' in this example is the client, 'SERVER' is the server):

claire.~ $ 
15:56:22 (lmgrd) lmgrd will now shut down all the vendor daemons
15:56:22 (lmgrd) Shutting down jacket pid=1798 because of signal 15
15:56:22 (jacket) Shutdown requested from vvenu@SERVER IP=127.0.0.1
15:56:22 (jacket) daemon shutdown requested - shutting down
15:56:22 (lmgrd) jacket exited with status 46 (lmgrd requested vendor daemon down)
15:56:22 (lmgrd) Shut down FLEXnet jacket license server system on machine mohinder
15:56:22 (lmgrd) EXITING DUE TO SIGNAL 15



Starting Jacket on the Client

Please ensure that the license file on the client is the same as that on the server.

Start Jacket and type ginfo.

If you have access to the server, you should see log messages that indicate that a license was checked out. (see section Reading Server-side messages).

You should also see an output similar to the following on the client side:

12:18:37 (jacket) TCP_NODELAY NOT enabled
12:18:37 (jacket) OUT: "jacket" user@machine
12:18:37 (jacket) OUT: "sla" user@machine
12:18:37 (jacket) OUT: "hpc" user@machine
12:18:37 (jacket) OUT: "mgl" user@machine
12:18:37 (jacket) OUT: "dla" user@machine
 
Jacket v1.7 (build 4ba10c6) by AccelerEyes
License Type: Designated Computer (on 64-bit Linux)
Licensed Addons: , DLA, SLA
Multi-GPU: Not Available
 
Detected CUDA-capable GPUs:
CUDA driver 260.19.14, CUDA toolkit 3.2
GPU0 GeForce 8400 GS, 918 MHz, 512 MB VRAM, Compute 1.1 (single)
 
GPU Memory Usage: 496 MB free (512 MB total)

The OUT statements indicate the license features that were "checked out" on to the account 'user' on the node named 'machine'.

If the number of checked-out licenses exceeds the limit on the number of nodes, you will see the message:

There are no more jacket licenses available. Please wait until another user has finished.


Reading Server-side messages

Messages on the server that read OUT indicate that a license was checked out by a client node. You will see one line per feature that's present in the license. A sample log message would read like this:

12:18:37 (jacket) OUT: "jacket" user@machine
12:18:37 (jacket) OUT: "sla" user@machine
12:18:37 (jacket) OUT: "hpc" user@machine
12:18:37 (jacket) OUT: "mgl" user@machine
12:18:37 (jacket) OUT: "dla" user@machine

Here, the license was checked out at the node user@machine.

Messages that read IN indicate that a license was checked back in. You will see one line per feature that's present in the license. A sample log message would read like this:

15:15:16 (jacket) IN: "mgl" gallagher@claire  
15:15:16 (jacket) IN: "hpc" gallagher@claire  
15:15:16 (jacket) IN: "dla" gallagher@claire  
15:15:16 (jacket) IN: "sla" gallagher@claire

Here, the license was checked back in from the node user@machine. This typically also indicates that the Jacket session was terminated.

Troubleshooting

Server-Side: Starting lmgrd: /lib/ld-lsb.so.3: bad ELF interpreter: No such file or directory

Some Red-Hat Linux distributions do not include the Red-Hat LSB libraries. You may need to manually install this (available through fedora yum or rpm repositories).

Server-Side: "Not a valid server hostname"

If you see an error message such as the following when you run lmgrd on the server:

11:24:42 (lmgrd) 
11:24:42 (lmgrd) "mohinder": Not a valid server hostname, exiting.
11:24:42 (lmgrd) Valid license server system hosts are: "10.0.12.3"
11:24:42 (lmgrd) Using license file "jlicense.dat"

Solution:

Perform the following checks to ensure the license file was created properly:

  • Check that you specified the proper IP address that other machines on your network use to access the server.
  • The hostname of your machine (typically stored in /etc/sysconfig/network) while downloading the license file should match the hostname on the license file, jlicense.dat, that you downloaded.

If the problem still persists, one work-around is to create a new license file as shown:

  • Log in to your AccelerEyes account
  • In the Concurrent License field, fill in your server's hostname as the "IP Address".
  • Generate and download a license file again.
  • Verify that the license file has your server's hostname and not the IP address.
  • Kill any previous lmgrd process you may have and run lmgrd again as shown in this Wiki Page.

If all goes well, you should see an output similar to the following. This is an Example output for a server with Hostname MYSERVER and LMGRD TCP Port 27000.

11:39:34 (lmgrd) -----------------------------------------------
11:39:34 (lmgrd) 
11:39:34 (lmgrd) 
11:39:34 (lmgrd) License file(s): jlicense.dat
11:39:34 (lmgrd) lmgrd tcp-port 27000
11:39:34 (lmgrd) Starting vendor daemons ... 
11:39:34 (jacket) FLEXnet Licensing version v11.8.0.0 build 81116 i86_lsb
11:39:34 (jacket) Server started on MYSERVER for:	jacket		
11:39:34 (jacket) mgl		hpc		dla		
11:39:34 (jacket) sla		
11:39:34 (jacket) EXTERNAL FILTERS are OFF
11:39:34 (lmgrd) Started jacket (internet tcp_port 43487 pid 1798)
11:39:34 (lmgrd) jacket using TCP-port 43487

Client-side: "checkout: Cannot connect to license server"

If you observe the following message while trying to start a Jacket session on the client:

checkout: Cannot connect to license server system. (-15,570:115 "Operation now in progress")

It is possible that a firewall may be blocking access to the lmgrd process running on the server.

Solution:

Try temporarily disabling the Firewall on the License Server machine and checking that this solves the problem.

On Linux, try stopping the iptables service as sudo service iptables stop.

Personal tools