- 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:
- FCFS - first-come, first-serve
- BESTFIT - the jobs that require the most PE's are scheduled first
- WORSTFIT - the jobs that require the least PE's are scheduled first
- 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:
- FIRSTFIT - packs new job in the first time slot found with adequate PE's available.
- BESTFIT - packs new job in the time slot with the least amount of adequate PE's available.
- WORSTFIT - packs new job in the time slot with the most PE's available.
- 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:
- CENTRAL - a single central manager receives all client requests and does all of the allocation and deallocation server requests.
- CLIENT - each client seeks network RAM on its own without coordination with other clients or managers.
- MANAGER - clients must contact local managers to allocate and deallocate network RAM. The servents acting as local managers are elected and which particular servents act as managers will vary.
- BACKBONE - a constant number of servents will act as managers. Clients may choose one manager among the multiple available managers. If only one manager exists, this strategy is equivalent to the CENTRAL strategy.
- 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.
- Star - N links and 1 switch
- Wheel -
links and 1 switch
- Bus - 1 link
- Connected -
links
- 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.