next up previous
Next: Workload Data Up: Input Previous: Command-line Options

Configuration File

PNRSim reads a text-based configuration file that defines simulation parameters. Each parameter is listed on a line. Each parameter starts with the parameter name, followed by whitespace (tabs or spaces), followed by the parameter value. The type of parameter value will depend on the parameter. The configuration file is not case-sensitive. Hashes (or semicolons) mark the beginning of comments.

The following is a list of accepted parameters:

System
The system name. Used for output purposes only. The value be any string without whitespace.

MetricsPeriod
Controls how often PNRSim produces output that indicates simulator progress and how often samples are taken for statistical purposes. The value may be any floating point number.

Note that the current version of PNRSim cannot guarantee output or sampling will occur at absolute times. PNRSim will print output as close as it can to the period described. For instance, if no event happens for 1000 time units, and the period is set for 100, no output will be produced until update 1000.

Seed
The random number seed.

The value may be any positive integer or zero. If the value is zero, the seed will be set using the current system time (in seconds).

Process
The name of each process. The value may be any string (no spaces).

MemAccessRate
The average amount of time (in seconds) between memory accesses for processes in the system. The value may be any positive floating point number. This value is used as a parameter in a formula that determines the frequency of page faults.

CommRate
The average amount of CPU time (in seconds) between local communications among threads. The value may be any positive floating point number.

SynchRate
The average amount of CPU time between global synchronizations of all threads in a job. The value may be any positive floating point number.

Scheduler
Sets the global system scheduler to be one of the pre-defined scheduler types. The only scheduler currently available is a gang scheduler (GANG) - a scheduler that implements both time and space sharing. However, a simple space-sharing scheduler can be implemented by running the gang scheduler with a MPL of 1.

Priority
Sets the policy on the priority queue the scheduler uses. Currently available are:

Packing
Packing controls how the gang scheduler puts new jobs into the available time slices. That is, multiple time slices could possibly accomodate a new job, and some method must be used to choose among the available time slices.

Currently available packing schemes are:

MPL
Defines the Multi-Programming Level for the gang scheduler. MPL defines the maximum number of time slices the gang scheduler may use. A value of zero indicates an infinite number of time slices may be used. A positive integer value sets the maximum.

PCS
Sets the amount of time overhead incurred during each Parallel Context Switch. This is for use in the gang scheduler only. During this overhead time, no useful work is done. The value may be set to any positive floating point number.

MemAware
Determines if the scheduler is "memory aware" or not. If the scheduler is memory aware, it will queue jobs when there is not enough physical memory to accomodate their memory needs. The scheduler does this even if enough processors are available. If a scheduler is memory aware, it is assumed the scheduler not only keeps track of current memory allocations on each PE, but also is perfectly aware of the memory requirements of each incoming job. This is unrealistic.

An implication of memory awareness is that no thread may ask for more memory than is physically installed in system RAM. If any thread does this, it is queued forever.

The value of this parameter may be "Yes" or "No".

Quantum
This parameter sets the time quantum between parallel context switches. This is the length of a single time slice. This parameter is used only by gang schedulers. The value may be set to any positive floating point number.

NetRamPacking
This parameter is currently unused.

Computer
The base name of each computer (PE) in the system. A computer number will be appended to the base name in system output. The value may be any string with no spaces. This parameter is only used for output purposes.

Number
The number of computers (PE's) installed in the system. The value may be any positive integer.

It is assumed that all computers are homogenous.

Netram
Signals the system whether Parallel Network RAM will be used or not. The values for this parameter may be "Yes" or "No".

PNRStrategy
If PNR is being used, this parameter sets which variety of PNR will be used. The different PNR algorithms may yield different results.

Currently available strategies include:

GlobalKnowledge
If PNR is used, this parameter turns PNR servents' access to global information on and off. Specifically, if this parameter is turned on, servents have access to the current memory load of each computer in the system. Servents can use this information to more accurately select PNR servers for network RAM allocation. This information is, of course, impossible to obtain in the real world. However, this parameter can help determine how big a factor outdated information is playing in PNR strategies.

The values for this parameter may be "Yes" or "No".

Managers
This parameter is specific to the "backbone" PNR strategy. The value may be any positive integer equal to or less than the number of PE's available in the system. This number will determine how many PNR managers are available on the system.

ServerThreshold
This parameter determines the lowest acceptable level of idle RAM on a PNR server. If idle RAM goes below this number, the PNR server will not allow any more network RAM to be allocated. If idle RAM is above this number, managers may allocate network RAM as long as the allocation does not put the server under this threshold.

The threshold is a positive floating-point number representing Megabytes.

CPU
This parameter is currently unused.

RAM
Amount of RAM on each computer. The number is in megabytes. The value may be any positive floating-point number.

RPM
The revolutions per minute each PE's disk rotates at. This number is used to calculate disk read/write times. This value may be any positive floating-point number.

Seek
The average seek time of each PE's disk. This number is used to calculate disk read/write times. This value may be any positive floating-point number.

Tranfer
The rate at which data is transferred from disk to CPU on each PE. This number is used to calculate disk read/write times and is in MB/sec. This value may be any positive floating-point number.

Network
Defines the network topology. The following are available topologies.

Bandwidth
The bandwidth of each link in the system. The value is in Megabytes per second and may be set to any positive floating point number.

Latency
The amount of time it takes data to traverse links in the system. The value may be set to any positive floating point number.

Delay
The fixed amount of time it takes for switches to process packets on the system. The value may be set to any positive floating point number.


next up previous
Next: Workload Data Up: Input Previous: Command-line Options
John Oleszkiewicz 2004-04-14