Server

The Distributed OrcaFlex server is a Windows service, an application that starts automatically and runs in the background. If the DOF server needs to be restarted, then you should make sure submitted jobs have been completed first. Restarting the server will clear the jobs list. Jobs already running should complete, but may be reported as failed by the server on restart.

Hardware requirements

The computer should be running Windows 10 or later and must be connected to a network. The DOF server handles connections and constant progress updates from potentially very many DOF clients, so a fast processor is desirable.

Settings

All of the configuration settings for the Distributed OrcaFlex server program are in the system of the local machine registry under the following key:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DOFServerService

This key contains the service configuration settings, which should not be changed. It also can contain these user configurable settings:

Incorrect settings may prevent Distributed OrcaFlex from running correctly. If any of these settings are changed then the DOF server service will need to be restarted to read the new configuration.

Common AppData

Some of the settings refer to %COMMON APPDATA% in file paths. This is the common application data folder, normally C:\ProgramData\.

Port: REG_DWORD

Port is the TCP/IP port number that Distributed OrcaFlex uses to communicate with the client machines. If this setting is missing then the default of 53412 will be used. If this is changed from the default then remember to modify the port setting for all the DOF client and DOF viewer machines as well.

DeleteJobsFromListAfterDays: REG_DWORD

Completed jobs remain in the queue after completion so that their status can be viewed for several days. This setting specifies the integer number of days a job is retained. If this setting is missing then the default is 3 days. The maximum number of completed jobs allowed in the jobs list is limited to 10,000 and surplus completed jobs are removed from the list regardless of the value of this setting.

If you require, you can log completed jobs to a logfile when they are deleted from the queue. This is enabled with the registry setting DisableCompletionLog. A copy of the job information is made in the file %COMMON APPDATA%\orcina\dof\JobLog.txt. The file is a comma separated text file with one line for each job. Note that filenames containing commas will be enclosed in double quotes.

DeleteClientsFromListAfterInactiveDays: REG_DWORD

The DOF server keeps a record of recently connected clients. Clients remain listed in the viewer even if they do not connect (the client will be marked as Unavailable). This setting is an integer specifying the number of days an Unavailable client will remain in the list before it is removed completely. If this setting is missing, then the default of 16 days will be used. If a client subsequently reconnects, it will reappear in the client list.

DisableCapacitySharing: REG_DWORD

The server allocates client resources so that each user with waiting jobs gets an equal share regardless of when they submitted jobs. This is the default operation but if you wish you can disable this feature by adding this setting with a non-zero value (true). When capacity sharing is disabled, jobs are processed in the order they are submitted.

WakeOnLANEnabled: REG_DWORD

By default Wake on LAN is disabled. If you wish to use this functionality then you can enable it by adding this setting in the registry with a non-zero value (true). For WakeOnLAN to work, the client machines must have this feature enabled in their BIOS, this is commonly disabled by default. The server sends the wake packet with the MAC Address of the client machine by local broadcast.

DOFLogLevel: REG_DWORD

By default, the server writes a log of its activity to %COMMON APPDATA%\orcina\dof\DOFServer.log. This file is limited to 10MB and will automatically rotate when this limit is reached. The logging detail can be limited to error information only by setting DOFLogLevel to 0.

DisableListPersistence: REG_DWORD

If this setting is absent then by default, the server will not periodically save the list of pending and completed jobs to %COMMON APPDATA%\orcina\dof\DOFServer.job. To enable this file being written then add this setting with a value of 0 (false).

DisableCompletionLog: REG_DWORD

If this setting is absent then by default, the server will not log completed jobs to %COMMON APPDATA%\orcina\dof\JobList.txt. If you wish this log to be written then add this setting with a value of 0 (false).

FileOperationsThrottle: REG_DWORD

Usually, the practical limit on total job throughput in Distributed OrcaFlex is the rate at which jobs can be loaded from and saved to network storage. When large numbers of jobs are being saved this could impact other users of the file system. This setting allows the load on the file system from Distributed OrcaFlex to be reduced. The server restricts the number of simultaneously saving and loading jobs to smooth and reduce the load on the file server. If the current total file operations, as counted by the server, exceed a certain threshold value then the file server is deemed busy. The server will then signal the clients to delay file read and write operations by a random interval until the file server is no longer busy. This value can be set between 0 (no throttle) and 20 (maximum throttle). The default is 5.

Job allocation

The Distributed OrcaFlex server compiles a list of jobs to be allocated to clients based on the DisableCapacitySharing setting and the job's status. At each scheduling interval the server works down this list and allocates jobs to clients with spare capacity. The number of jobs allocated at each interval can be more than the spare cores on that client to allow for jobs near completion. The maximum allocated is double the number of processors for that client (each client has its own buffer queue).

There is a time overhead between a job being scheduled to a client, the client loading and starting that job and then reporting back to the server. For short simulations and static analyses the actual job calculation time can be less than this overhead and jobs may not be scheduled fast enough to fully utilise the capacity of the clients. Indeed the job could be completed before any progress update can be sent to the viewer.

The server aims to share the available processing capacity equally between users with waiting jobs. When capacity becomes available, pending jobs from the user with the lowest share of the running jobs are allocated first. This capacity sharing feature can be disabled.

Client alias names

Details of recently connected clients are stored in a structured text file by the server, mainly to allow these clients to be sent Wake-on-LAN messages to wake them if required. The file can be edited to add an alias name for a client machine that will be displayed in the viewer instead of the machine name. The client list file is in %COMMON APPDATA%\orcina\dof\DOFServerClients.txt.

Please note that if you wish to modify the client list file, you must first stop the DOF server service, then restart it after making your changes.

A client entry has the form:

%YAML 1.1
---
- MachineName: WORKSTATIONNAME 11234Z
  Version: 6.3a 64 bit
  MACAddress: 72:83:C2:99:5A:CD
...

An Alias line can be added to give the client an alternative name in the viewer:

%YAML 1.1
---
- Alias: Hal
  MachineName: WSTATIONNAME 11234Z
  Version: 6.3a 64 bit
  MACAddress: 72:83:C2:99:5A:CD
...