Introduction
About Frontier® Enterprise
The Frontier Grid Platform is a high-performance distributed computing environment that draws on the spare computational power of computers connected to an intranet, such as a corporate network. In other words, the Frontier Grid Platform enables you to transform the idle CPU cycles of your existing computer resources into valuable supercomputational power.
About This Manual
This manual contains information on operating procedures and utilities that may be used to display useful information about user jobs, compute engine status, and general health of the system. The sections comprising this manual are described below.
| Section | Description |
|---|---|
| Introduction | Describes the Frontier Enterprise computing platform and presents information about this Operations Manual. |
| Getting Started | Presents an overview of Frontier Enterprise and a description of server components and specifications. |
| Server Administration | Provides instructions for managing the server, modifying server configuration settings, registering users, upgrading the Frontier compute engine, and pruning the database. |
| Server Utilities | Lists and describes server utility script files that may be used to display various types of information about client jobs and tasks. |
| Appendix A - Server Configuration Properties | Lists and describes server configuration properties that may be found in the parabon.properties file. |
Typographical Conventions
The following typographical conventions are used in this manual:
| Convention | Description | Example |
|---|---|---|
| Italics | Emphasizes important information and highlights the first mention of terms that may be new to the reader. | Executable elements provide the Java bytecode instructions necessary to run a task. |
| Bold | Indicates the names of GUI components such as buttons, check boxes, and menu options. | Select Internet Options from the Tools menu. |
Courier New |
Indicates directories, path names, file names, script names, code samples, and output. | To enable your application to run in remote mode, specify the URL of the Frontier Enterprise server and use a RemoteSessionManager instead of a LocalSessionManager. |
Courier New Bold |
Indicates exact commands and characters typed by the user. | The command prime.sh -remote launch launches a prime job in remote mode. |
<Courier New Italic> or < Courier New Bold Italic> |
Used as a placeholder that should be replaced (brackets included) by the actual value. |
To build the sample, enter the following commands, replacing <app_name> with the name of the lesson's sample application (e.g., "local" for Lesson 1):
cd ${FRONTIER_HOME}/demo/<app_name>/src
ant |
Related Documents
- Frontier Grid Platform - Application Programming Interface
- Frontier Software Development Kit - User's Guide & Tutorial
Technical Support
For technical support, troubleshooting, and other questions concerning Frontier Grid application development, please feel free to email technical support at support@parabon.com
Getting Started
Frontier Enterprise System Overview
The Frontier Grid Platform, is comprised of three main components:
- The Frontier Compute Engine
- The Frontier Enterprise Server
- The Frontier Software Development Kit (SDK)
The Frontier Compute Engine
Each computer or server within your organization whose spare power you use as part of Frontier Enterprise is referred to as a provider node, a provider being the individual authorized to use that computer, e.g., an employee, System Administrator, etc. The Frontier compute engine is an unobtrusive desktop application that automatically manages and utilizes the spare processing power of a provider node. The engine enables discrete units of computational work called tasks to be downloaded from the Frontier Enterprise Server and processed during idle time. When processing is complete, the results are uploaded the next time a connection is established with the Frontier Enterprise Server.
The Frontier compute engine works only when a computer is idle, that is, not actively engaged in processing tasks. As soon as a provider moves his or her mouse or touches the keyboard, the Frontier compute engine immediately stops working and allows the provider to resume normal computer use.
The Frontier Enterprise Server
The Frontier Enterprise Server is the component responsible for orchestrating the execution of user jobs. It monitors the status of all jobs running in the system, as well as the status of every engine, so that it can efficiently assign tasks to these engines. The Frontier Enterprise Server takes into account the fact that some provider node resources may not be constantly available, since providers may resume using or disconnect their computers at any time. If, after a certain time, a compute engine is non-responsive, the server migrates its tasks to other available engines.
The Frontier SDK
The Frontier SDK is a collection of software tools that enables users to write, monitor, and control the execution of large, compute-intensive jobs. At the core of the SDK is the Frontier Application Programming Interface (API), which provides an easy-to-use programming interface for developing client applications to run on Frontier Enterprise. The Frontier SDK provides several libraries that implement proven parallel paradigms to assist users in developing and porting applications to run on the Frontier grid.
Server Architecture Overview
The diagram below illustrates the architecture of the Frontier Enterprise Server.

The components of the Frontier Enterprise Server are described below.
Provider Servlet
The Provider Servlet accepts GET and POST messages from provider nodes, routes them to the Provider Manager, and sends the response from the Provider Manager. The Provider Servlet's responsibilities include message encoding/decoding, message parsing, and message routing.
Client Servlet
The Client Servlet accepts GET and POST messages from users, routes them to the Client Manager, and sends the response from the Client Manager. The Client Servlet's responsibilities include message encoding/decoding, message parsing, and message routing.
Element Servlet
The Element Servlet is used as a drop point for data and executable elements exchanged between user applications and provider nodes. User applications upload data elements to the Element Servlet, which then stores them locally. Provider nodes later make requests to the Element Servlet, which serves them the requested element.
Registration Servlet
The Registration Servlet accepts registration requests from provider nodes and sends them to the Registration Manager for handling.
Provider Manager
The Provider Manager is responsible for managing requests to and from provider nodes. The Provider Manager also handles requests from other internal server components (e.g., Task Scheduler, Client Manager) to send messages to the provider node.
Client Manager
The Client Manager is responsible for managing requests to and from user applications. The Client Manager also handles requests from other internal server components (e.g., Task Scheduler, Provider Manager) to send messages to the user application.
Registration Manager
The Registration Manager registers new providers in the provider database.
Task Scheduler
The Task Scheduler manages the initial assignment of tasks to provider nodes, as well as the migration of tasks as necessary. To effectively schedule tasks, the Task Scheduler must track the states of the provider nodes and tasks in its queue. This requires that the Client Manager and Provider Manager notify the Task Scheduler of all changes in the status of user applications and provider nodes. The Task Scheduler records task assignments in the database. The Task Scheduler assigns tasks based on job power (nodes-per-job) and priority heuristics.
Database
Information on users and providers is stored in a local or remote Oracle® Database. See "Operation Environment" for database specifications.
Operational Environment
The following table lists specifications for the Frontier Enterprise server.
| Component | Description |
|---|---|
| Machine | Server Class System with at least a 2GHz CPU (multi-core preferred) |
| Memory | 4GB RAM |
| Disk | 72 GB Disk |
| Operating System/Version | SuSE Linux 10.3 (i386 version) |
| JVM/Version | Sun JDK 1.6 |
| Database/Version | Oracle Database Core: Version 10g i386 (Express or Standard Edition) |
Server Administration
Frontier Enterprise Administration Web Pages
Frontier Enterprise includes a set of administration web pages that enable you to perform various functions such as managing access to the Frontier Enterprise server, controlling the Frontier Enterprise server, and modifying engine configuration.

See the Administration section for details. Note: You will be required to authenticate with the server to access this section of the web site.
Administration Account Management
Each Administrative user - those people who will be responsible for making changes to the Frontier Enterprise Server itself - will need to have his or her own Administrative Account.
Administrative Accounts allow access to the Administrative Web Pages, Status Graphs, etc.; they do NOT necessarily enable employees to launch jobs -- those are User Accounts
You may create as many Administrative Accounts as you need in order to control access to the Frontier Enterprise Server. To create a new Administrative Account, click on the "Add Administrator" link:
Frontier Compute Engine Configuration
Configuration of the Frontier Compute Engines can be centrally managed via the "Engine Configurations" section of the Administration Web Pages.
For help customizing the engine configuration values, please contact support@parabon.com
Engine Node Groups
Different Compute Engines can be assigned to work exclusively for certain User Accounts. This "many to many" mapping can be adjusted via the "Engine Node Groups" link:
Frontier Servers
Finally, the Enterprise Grid service itself can be stopped or started via the Administration Web Pages - although we recommend using the Command-Line Administration method below.
Managing Server Configuration
The parabon.properties file, which is located in the ~parabon/frontier/conf/ directory, contains configuration settings that can be modified using any text editor. See Appendix A - Server Configuration Properties for a list of these properties.
Registering Users
User registrations are handled through the User Registration interface. Users must register for a Frontier account before they can launch jobs via the Frontier SDK, or through the Dashboard.
Upgrading Engines
Frontier Compute engine upgrades will be delivered as a self-extracting executable that will:
- Replace the existing engine download bundles with the new versions.
- Replace the current engine upgrade specification with a version specific to the current engine release, and notify the Frontier Enterprise server of the new specification.
- Notify all engines currently installed on grid that an upgrade is available.
Backup and Recovery
Backup policies and procedures should be developed between your Database and System Administrators.
Pruning
Server Log Pruning
The server logs are pruned automatically via the following scripts:
~parabon/frontier/bin/cleanup-server-logs
- Compresses server logs and removes logs older than 7 days (currently not configurable).
~parabon/frontier/bin/cleanup-tmp
- Prunes temporary files created by the servlets from
/tmp,/usr/tmp, and/var/tmpon a daily basis. Default interval is 1 day. Can be configured by supplying an argument to this script in the root user'scrontab(5)file.
Database Pruning
The database is pruned automatically via the cron(8) daemon and the following scripts:
~parabon/frontier/bin/purge-taskinstances
- Purges completed/deleted task instances from the
TaskInstancesdatabase table. Default interval is anything older than 7 days. This is configurable by changing theNumberOfDaysargument in the 'parabon' user'scrontab(5)file.
~parabon/frontier/bin/purge-expired-data
- Purges from the database jobs and tasks that have been marked as deleted. Default interval is 90 days. Can be configured by modifying the
NumberOfDaysargument in the 'parabon' user'scrontab(5)file. - Purges sessions that have a "completed" status. Default interval is same as above.
~parabon/frontier/bin/element-manager
- Purges job and task level elements that are not referenced by "active" jobs or tasks. Default interval is 30 days. Can be configured by modifying the
-exp nargument in the root user'scrontab(5)file.
Server Utilities
The following utilities are the most commonly used command line programs during day-to-day operation of a Frontier Enterprise Server.
Note: All server utilities are located under ~parabon/frontier/bin/ and should be executed using the 'parabon' user credentials. |
Command Line (CLI) Shell-Based Administration
Name:
parabonctl
Synopsis:
parabonctl command [service ...]
Description:
This utility controls the Frontier Enterprise services. If no "service" arguments are present, "command" will be applied to all Frontier services. The following table lists the available commands.
| Command | Description |
|---|---|
run |
Starts the Frontier services |
stop |
Performs a graceful shutdown of the Frontier services |
shutdown |
Performs an immediate shutdown of the Frontier services. This command automatically implies all services. |
status |
Lets you check the status of the Frontier services |
The "service" argument may refer to a specific Frontier Engerpirse service. The following table list the available services.
| Service | Description |
|---|---|
tomcat or apache |
The Frontier Web Service |
client |
The Client Manager |
provider |
The Provider Manager |
scheduler |
The Task Scheduler |
registration |
The Registration Manager |
Name:
nodectl
Synopsis:
nodectl [options] command nodeID [<nodeID>...]
Description:
The nodectl script changes the state of an engine with respect to the Provider Manager. This utility should be used when an engine is reported to be out of sync with the Provider Manager, or if an engine reports too many aborted tasks, which could be the result of a corrupted cache or invalid JRE.
Options:
The following command line options are available:
-d debug-level
- Specifies a different debug level. Value must be between 0 and 5.
-c config-manager
- Specifies an alternate Config Manager to contact for configuration information.
Commands:
The <nodeID> argument(s) define the Engine ID(s) on which the following commands are performed:
| Command | Description |
|---|---|
refresh |
Refreshes specified engines in the Provider Manager cache. |
enable |
Re-enables specified engines. The Provider Manager will resume sending messages to specified engines. |
disable |
Disables specified engines. The Provider Manager will not send any messages to specified engines. |
nuke |
Cleans specified engines' session cache. This will force an engine to clear its cache and request a different cookie from the Provider Manager. This option should be used if an engine's cache is corrupted or the engine is out of sync with the server. |
help |
Displays the usage statement. |
Files:
None.
Name:
reset-node-version
Synopsis:
reset-node-version [-c config-manager] nodeID [<nodeID> ...]
Description:
The reset-node-version script resets an engine's last sent upgrade version number in the database and clears the engine from the Provider Manager cache.
Options:
The following command line option is supported:
-c config-manager
- Specifies an alternate Config Manager to contact for configuration information.
The <nodeID> argument(s) define the Engine ID(s) to reset.
Notes:
This utility should only be used to force sending a new upgrade message to an engine suspected of containing an invalid JRE or having a corrupted upgrade.
Files:
None.
Refresh Client Manager Cache
|
Note: All server utilities script files are located in |
Name:
clientctl
Synopsis:
clientctl [options] command clientID [<clientID> ...]
Description:
The clientctl script refreshes the specified Client ID(s) from the Client Manager cache. This allows client properties, such as job priority, maximum cluster size, etc., to be modified in the database. After a client record is cleared from the Client Manager cache, the next reference to the record will result in the record being reloaded with the new values.
Options:
The following command line options are available:
-H prod-home-dir
- Specifies an alternate production home directory.
-d debug-level
- Specifies the debug level; must be between
0and5.
-c config-manager
- Specifies an alternate Config Manager to contact for configuration information.
Commands:
The <clientID> argument(s) define the Client ID(s) on which the following commands are performed:
| Command | Description |
|---|---|
refresh |
Refreshes specified client IDs in the Client Manager cache. |
help |
Displays the usage statement. |
modify |
Lets you change the following job properties for the specified client ID(s):
|
Notes:
None.
Name:
change-property
Synopsis:
change-property [options] server-url property-pairs
Description:
The change-property script enables users to change the following server properties "on the fly". This script may be called against either the Client Manager or Provider Manager instances.
com.parabon.server.messagemgr.staleSessionSleepDurationcom.parabon.server.messagemgr.staleSessionDefinitioncom.parabon.server.messagemgr.maxMemoryMessageCachecom.parabon.server.messagemgr.maxMessageInputQueueSize
Options:
The following command line options are available:
-H prod-home-dir
- Specifies an alternate production home directory.
-h
- Displays the usage statement.
server-url
- Specifies the server URL as registered with the RMI Registry, e.g.,
//clientmgr-1/client-1
property-pairs
- Specifies the list of name/value pairs (separated by spaces) of properties to change, e.g.,
com.parabon.server.debug 3
Notes:
None.
Name:
change-passwords
Synopsis:
change-passwords
Description:
The change-passwords script allows the administrator to change the database, parabon user, and root user passwords on the Frontier Enterprise server.
Options:
None.
Notes:
None.
Appendix
Appendix A - Server Configuration Properties
The following properties control the behavior of the Frontier services and are contained in the ~parabon/conf/parabon.properties properties file.
Global Properties (All Servers)
| Property | Default Value | Description |
|---|---|---|
com.parabon.server.debug |
5 |
Debug level. |
com.parabon.server.config.dir |
~parabon/frontier/conf |
Server configuration directory. |
Config Manager Parameters
| Property | Default Value | Description |
|---|---|---|
com.parabon.server.config.dir |
~parabon/frontier/conf |
Server Configuration directory. |
Client Manager Configuration Parameters
| Property | Default Value | Description |
|---|---|---|
db.dataSources |
client |
Data sources loaded by the server. |
com.parabon.server. |
https://<your-frontier-server.name>:443 | URL (including Host and port) where client applications will send elements. This property will be sent to the client application as part of the BucketID parameter. |
com.parabon.server. |
https://<your-frontier-server.name>:443 | URL (including Host and port) where provider nodes will retrieve elements. |
com.parabon.server. |
3600000 |
Time in milliseconds the Client Manager will clear unused sessions from the cache. |
com.parabon.server.clientmgr. |
10 |
Number of times a task can fail before it is set to the aborted state and can no longer be scheduled. |
com.parabon.server.messagemgr. |
3600000 |
How often to check for "stale" sessions. |
com.parabon.server.messagemgr. |
7200000 |
The amount of time that has passed since the last time anything was heard from the node; defines the length of a "stale" session. |
com.parabon.server.messagemgr. |
500 |
Number of messages to keep cached per session. |
com.parabon.server.messagemgr. |
50000 |
Number of messages to allow in the input queue before dropping them. |
Default Provider Configuration Parameters
| Property | Default Value | Description |
|---|---|---|
db.dataSources |
provider |
Data sources loaded by the server. |
com.parabon.server. |
//localhost/config-1 |
Config Manager RMI URL. Where the server gets its configuration information. |
com.parabon.server. |
1000 |
Estimate to the Provider Manager indicating the approximate number of nodes for which it is responsible. |
com.parabon.server.providermgr. |
900000 |
Number of milliseconds in which the Provider Manager will query the database again for engine upgrade information. |
com.parabon.server.providermgr. |
5 |
Number of times a node can abort tasks before it is deemed unusable. |
com.parabon.server.providermgr. |
0 |
Maximum number of upgrade messages that can be sent to a node per hour. This property is used to throttle upgrade messages to the engines. Setting this property to zero disables the feature. |
com.parabon.server.messagemgr. |
3600000 |
How often to check for stale sessions. |
com.parabon.server.messagemgr. |
7200000 |
The amount of time that has passed since the last time anything was heard from the node; defines the length of a "stale" session. |
com.parabon.server.messagemgr. |
500 |
Number of messages to keep cached per session. |
com.parabon.server.messagemgr. |
50000 |
Number of messages to allow in the input queue before dropping them. |
Task Scheduler Configuration
| Property | Default Value | Description |
|---|---|---|
com.parabon.server. |
//localhost/config-1 |
Config Manager RMI URL. Where the server gets its configuration information. |
com.parabon.server.scheduler. |
3600 (one assignment per second) |
Maximum number of tasks assigned to a node per hour. |
com.parabon.server.scheduler. |
1 |
Maximum number of tasks the Task Scheduler will assign to any given engine. |
com.parabon.server.scheduler. |
Legacy; not currently used. | Maximum number of canary tasks the Task Scheduler will assign to any given engine. |
com.parabon.server.scheduler. |
1 |
Number of times per day the node-expire background thread process is run. |
com.parabon.server.scheduler. |
300 |
Frequency at which the Task Scheduler calculates how much power each job is using, logs the amount, and reports it to the Client Manager to be recorded in the database. |
Registration Manager Configuration
| Property | Default Value | Description |
|---|---|---|
db.dataSources |
provider |
Data sources loaded by the server. |
com.parabon.server. |
//localhost/config-1 |
Config Manager RMI URL. Where the server gets its configuration information. |
com.parabon.server.provider. |
~parabon/etc/keys/ |
Private key used by the Registration Manager to generate certificates delivered to engines. |
com.parabon.server.client. |
~parabon/etc/keys/ |
Private key used by the Registration Manager to generate certificates delivered to engines. |
