Frontier Grid Platform

Frontier Enterprise Server Documentation

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

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)

Frontier Enterprise Platform

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.

Frontier Grid Platform Architecture

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.

Frontier Enterprise Admin Page

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

Frontier Enterprise Admin Accts

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.

Engine Configurations

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:

Engine Node Groups

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.

Frontier Servers

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:

  1. Replace the existing engine download bundles with the new versions.
  2. 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.
  3. 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/tmp on a daily basis. Default interval is 1 day. Can be configured by supplying an argument to this script in the root user's crontab(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 TaskInstances database table. Default interval is anything older than 7 days. This is configurable by changing the NumberOfDays argument in the 'parabon' user's crontab(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 NumberOfDays argument in the 'parabon' user's crontab(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 n argument in the root user's crontab(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 ~parabon/frontier/bin/.

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 0 and 5.

-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):
  • Cluster Size - Maximum nodes per cluster (MaxNodesPerJob)
  • Redundancy - Maximum task instances per task (MaxRedundancy)
  • Priority - Job priority (JobPriority)
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.staleSessionSleepDuration
  • com.parabon.server.messagemgr.staleSessionDefinition
  • com.parabon.server.messagemgr.maxMemoryMessageCache
  • com.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.
clientServletHost
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.
providerServletHost
https://<your-frontier-server.name>:443 URL (including Host and port) where provider nodes will retrieve elements.
com.parabon.server.
sessionHarvestPeriod
3600000 Time in milliseconds the Client Manager will clear unused sessions from the cache.
com.parabon.server.clientmgr.
taskFailureLimit
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.
staleSessionSleepDuration
3600000 How often to check for "stale" sessions.
com.parabon.server.messagemgr.
staleSessionDefinition
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.
maxMemoryMessageCache
500 Number of messages to keep cached per session.
com.parabon.server.messagemgr.
maxMessageInputQueueSize
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.
configManagerURL
//localhost/config-1 Config Manager RMI URL. Where the server gets its configuration information.
com.parabon.server.
defaultSetSize
1000 Estimate to the Provider Manager indicating the approximate number of nodes for which it is responsible.
com.parabon.server.providermgr.
updateInterval
900000 Number of milliseconds in which the Provider Manager will query the database again for engine upgrade information.
com.parabon.server.providermgr.
providerFailureLimit
5 Number of times a node can abort tasks before it is deemed unusable.
com.parabon.server.providermgr.
maxUpgradeMessagesPerHour
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.
staleSessionSleepDuration
3600000 How often to check for stale sessions.
com.parabon.server.messagemgr.
staleSessionDefinition
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.
maxMemoryMessageCache
500 Number of messages to keep cached per session.
com.parabon.server.messagemgr.
maxMessageInputQueueSize
50000 Number of messages to allow in the input queue before dropping them.

Task Scheduler Configuration

Property Default Value Description
com.parabon.server.
configManagerURL
//localhost/config-1 Config Manager RMI URL. Where the server gets its configuration information.
com.parabon.server.scheduler.
maxAssignmentsPerHour
3600 (one assignment per second) Maximum number of tasks assigned to a node per hour.
com.parabon.server.scheduler.
tasksPerNode
1 Maximum number of tasks the Task Scheduler will assign to any given engine.
com.parabon.server.scheduler.
tasksPerCanary
Legacy; not currently used. Maximum number of canary tasks the Task Scheduler will assign to any given engine.
com.parabon.server.scheduler.
nodeExpirationTimeoutHours
1 Number of times per day the node-expire background thread process is run.
com.parabon.server.scheduler.
timePerPowerReportSeconds
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.
configManagerURL
//localhost/config-1 Config Manager RMI URL. Where the server gets its configuration information.
com.parabon.server.provider.
private.rsa.key
~parabon/etc/keys/
providerCA.keystore
Private key used by the Registration Manager to generate certificates delivered to engines.
com.parabon.server.client.
private.rsa.key
~parabon/etc/keys/
clientCA.keystore
Private key used by the Registration Manager to generate certificates delivered to engines.
-->