| MATLAB® Distributed Computing Server™ | ![]() |
| On this page… |
|---|
Verifying Multicast Communications Memory Errors on UNIX® Operating Systems Running Server Processes from a Windows®-Based Network Installation |
This section offers advice on solving problems you might encounter with MATLAB® Distributed Computing Server™ software.
When starting a MATLAB® worker, a licensing problem might result in the message
License checkout failed. No such FEATURE exists. License Manager Error -5
There are many reasons why you might receive this error:
This message usually indicates that you are trying to use a product for which you are not licensed. You can look at your license.dat file located within your MATLAB installation to see if you are licensed to use this product.
If you are licensed for this product, this error may be the result of having extra carriage returns or tabs in your license file. To avoid this, ensure that each line begins with either #, SERVER, DAEMON, or INCREMENT.
After fixing your license.dat file, restart your license manager and MATLAB should work properly.
This error may also be the result of an incorrect system date. If your system date is before the date that your license was made, you will get this error.
If you receive this error when starting a worker with MATLAB Distributed Computing Server software
You may be calling the startworker command from an installation that does not have access to a worker license. For example, starting a worker from a client installation of the Parallel Computing Toolbox™ product causes the following error.
The mdce service on the host hostname returned the following error: Problem starting the MATLAB worker. The cause of this problem is: ============================================================== Most likely, the MATLAB worker failed to start due to a licensing problem, or MATLAB crashed during startup. Check the worker log file /tmp/mdce_user/node_node_worker_05-11-01_16-52-03_953.log for more detailed information. The mdce log file /tmp/mdce_user/mdce-service.log may also contain some additional information. ===============================================================
In the worker log files, you will see the following information.
License Manager Error -15. Cannot connect to license server The server (lmgrd) has not been started yet, or the wrong port@host or license file is being used, or the port or hostname in the license file has been changed. Feature: MATLAB_Distrib_Comp_Server Server name: hostname License path: /matlab/etc/license.dat FLEXlm error: -15,570. System Error: 111 "Connection refused" For further information, refer to the FLEXlm End User Manual, available at "www.macrovision.com". MATLAB is unable to connect to the license server. Make sure the SERVER line in your license file is correct. Have your MATLAB administrator verify that the license manager is running and validate network services. For more information, see The MathWorks Support page at http://www.mathworks.com/support and search for "license manager error -15"
If you have installed only the Parallel Computing Toolbox product, and you are attempting to run a worker on the same machine, you will receive this error because the MATLAB Distributed Computing Server product is not installed, and therefore the worker cannot obtain a license.
Note Though Version 3 of the parallel computing products continues to support multicast communications between its processes, multicast is not recommended and might not be supported in future releases. |
Multicast, unlike TCP/IP or UDP, is a subscription-based protocol where a number of machines on a network indicate to the network their interest in particular packets originating somewhere on that network. By contrast, both UDP and TCP packets are always bound for a single machine, usually indicated by its IP address.
The main tools for investigating this type of packet are tcpdump or the equivalent on Microsoft® Windows® operating systems (usually called winpcap and ethereal), and a Java™ class included with Version 3 of the parallel computing products.
The class is called com.mathworks.toolbox.distcomp.test.MulticastTester. Both its static main method and its constructor take two input arguments: the multicast group to join and the port number to use.
This Java class has a number of simple methods to attempt to join a specified multicast group. Once the class has successfully joined the group, it has methods to send messages to the group, listen for messages from the group, and display what it receives. The class can be used both inside MATLAB and from a call to Java software.
Inside MATLAB, the class would be used as follows.
m = com.mathworks.toolbox.distcomp.test.MulticastTester('239.1.1.1', 9999);
m.startSendingThread;
m.startListeningThread;
0 : host1name : 0
1 : host2name : 0
From a shell prompt, you would type (assuming that java is on your path)
java -cp distcomp.jar com.mathworks.toolbox.distcomp.test.MulticastTester 0 : host1name : 0 1 : host2name : 0
If the number of threads created by the server services on a UNIX®-based machine exceeds the limitation set by the maxproc value, the services will fail and generate an out-of-memory error. You can check your maxproc value on a UNIX-based system with the limit command. (Different versions of UNIX software might have different names for this property instead of maxproc, such as descriptors on Solaris™ operating systems.)
Many networks are configured not to allow LocalSystem to have access to UNC or mapped network shares. In this case, run the mdce process under a different user with rights to log on as a service. See Setting the User.
BASE_PORT. The ports required by the job manager and all workers are specified and described in the mdce_def file. See the following file in the MATLAB installation used for each cluster process:
matlabroot/toolbox/distcomp/bin/mdce_def.sh (on UNIX operating systems)
matlabroot\toolbox\distcomp\bin\mdce_def.bat (on Windows operating systems)
Parallel Jobs. The range of ports on UNIX-based worker machines required by MPICH for the running of parallel jobs is from BASEPORT + 1000 up to BASE_PORT + 2000.
Before the worker processes start, you can control the range of ports used by the workers for parallel jobs by defining the environment variable MPICH_PORT_RANGE with the value minport:maxport.
You can specify the ports used by the client with the pctconfig function. With this function you can ports separately for communication with the job manager and communication with pmode or a matlabpool, if the default ports cannot be used.
If you use the job manager on a Windows-based cluster, you must make sure that a large number of ephemeral TCP ports are available on the job manager machine. By default, the maximum valid ephemeral TCP port number on a Windows operating system is 5000, but transfers of large data sets might fail if this setting is not increased. In particular, if your cluster has 32 or more workers, you should increase the maximum valid ephemeral TCP port number, with the following procedure:
Start the Registry Editor.
Locate the following subkey in the registry, and then click Parameters:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
On the Edit menu, click New, and then add the following registry entry:
Value Name: MaxUserPort Value Type: DWORD Value data: 65534 Valid Range: 5000-65534 (decimal) Default: 0x1388 (5000 decimal) Description: This parameter controls the maximum port number that is used when a program requests any available user port from the system. Typically , ephemeral (short-lived) ports are allocated between the values of 1024 and 5000 inclusive.
Quit Registry Editor.
Reboot your machine.
![]() | Accessing Service Record Files | Admin Center | ![]() |
| © 1984-2008- The MathWorks, Inc. - Site Help - Patents - Trademarks - Privacy Policy - Preventing Piracy - RSS |