Implementing a dynamic processor allocation policy for multiprogrammed parallel applications in the Solaris™ operating system

Kelvin K. Yue, David J Lilja

Research output: Contribution to journalArticle

11 Citations (Scopus)

Abstract

Parallel applications typically do not perform well in a multiprogrammed environment that uses time-sharing to allocate processor resources to the applications' parallel threads. Co-scheduling related parallel threads, or statistically partitioning the system, often can reduce the applications' execution times, but at the expense of reducing the overall system utilization. To address this problem, there has been increasing interest in dynamically allocating processors to applications based on their resource demands and the dynamically varying system load. The Loop-Level Process Control (LLPC) policy (Yue K, Lilja D. Efficient execution of parallel applications in multiprogrammed multiprocessor systems. 10th International Parallel Processing Symposium, 1996; 448-456) dynamically adjusts the number of threads an application is allowed to execute based on the application's available parallelism and the overall system load. This study demonstrates the feasibility of incorporating the LLPC strategy into an existing commercial operating system and parallelizing compiler and provides further evidence of the performance improvement that is possible using this dynamic allocation strategy. In this implementation, applications are automatically parallelized and enhanced with the appropriate LLPC hooks so that each application interacts with the modified version of the Solaris operating system. The parallelism of the applications are then dynamically adjusted automatically when they are executed in a multiprogrammed environment so that all applications obtain a fair share of the total processing resources.

Original languageEnglish (US)
Pages (from-to)449-464
Number of pages16
JournalConcurrency Computation Practice and Experience
Volume13
Issue number6
DOIs
StatePublished - May 1 2001

Fingerprint

Parallel Applications
Operating Systems
Process Control
Thread
Process control
Resources
Parallelism
Parallelizing Compilers
Policy
Multiprocessor Systems
Control Policy
Parallel Processing
Execution Time
Control Strategy
Partitioning
Hooks
Sharing
Processing
Scheduling
Demonstrate

Keywords

  • Multiprogramming
  • Operating system
  • Parallelizing compiler
  • Performance measurement
  • Process scheduling
  • Processor allocation
  • Shared-memory multiprocessor

Cite this

@article{c851926a08fc4cdd98567e519e56737f,
title = "Implementing a dynamic processor allocation policy for multiprogrammed parallel applications in the Solaris™ operating system",
abstract = "Parallel applications typically do not perform well in a multiprogrammed environment that uses time-sharing to allocate processor resources to the applications' parallel threads. Co-scheduling related parallel threads, or statistically partitioning the system, often can reduce the applications' execution times, but at the expense of reducing the overall system utilization. To address this problem, there has been increasing interest in dynamically allocating processors to applications based on their resource demands and the dynamically varying system load. The Loop-Level Process Control (LLPC) policy (Yue K, Lilja D. Efficient execution of parallel applications in multiprogrammed multiprocessor systems. 10th International Parallel Processing Symposium, 1996; 448-456) dynamically adjusts the number of threads an application is allowed to execute based on the application's available parallelism and the overall system load. This study demonstrates the feasibility of incorporating the LLPC strategy into an existing commercial operating system and parallelizing compiler and provides further evidence of the performance improvement that is possible using this dynamic allocation strategy. In this implementation, applications are automatically parallelized and enhanced with the appropriate LLPC hooks so that each application interacts with the modified version of the Solaris operating system. The parallelism of the applications are then dynamically adjusted automatically when they are executed in a multiprogrammed environment so that all applications obtain a fair share of the total processing resources.",
keywords = "Multiprogramming, Operating system, Parallelizing compiler, Performance measurement, Process scheduling, Processor allocation, Shared-memory multiprocessor",
author = "Yue, {Kelvin K.} and Lilja, {David J}",
year = "2001",
month = "5",
day = "1",
doi = "10.1002/cpe.585",
language = "English (US)",
volume = "13",
pages = "449--464",
journal = "Concurrency Computation",
issn = "1532-0626",
publisher = "John Wiley and Sons Ltd",
number = "6",

}

TY - JOUR

T1 - Implementing a dynamic processor allocation policy for multiprogrammed parallel applications in the Solaris™ operating system

AU - Yue, Kelvin K.

AU - Lilja, David J

PY - 2001/5/1

Y1 - 2001/5/1

N2 - Parallel applications typically do not perform well in a multiprogrammed environment that uses time-sharing to allocate processor resources to the applications' parallel threads. Co-scheduling related parallel threads, or statistically partitioning the system, often can reduce the applications' execution times, but at the expense of reducing the overall system utilization. To address this problem, there has been increasing interest in dynamically allocating processors to applications based on their resource demands and the dynamically varying system load. The Loop-Level Process Control (LLPC) policy (Yue K, Lilja D. Efficient execution of parallel applications in multiprogrammed multiprocessor systems. 10th International Parallel Processing Symposium, 1996; 448-456) dynamically adjusts the number of threads an application is allowed to execute based on the application's available parallelism and the overall system load. This study demonstrates the feasibility of incorporating the LLPC strategy into an existing commercial operating system and parallelizing compiler and provides further evidence of the performance improvement that is possible using this dynamic allocation strategy. In this implementation, applications are automatically parallelized and enhanced with the appropriate LLPC hooks so that each application interacts with the modified version of the Solaris operating system. The parallelism of the applications are then dynamically adjusted automatically when they are executed in a multiprogrammed environment so that all applications obtain a fair share of the total processing resources.

AB - Parallel applications typically do not perform well in a multiprogrammed environment that uses time-sharing to allocate processor resources to the applications' parallel threads. Co-scheduling related parallel threads, or statistically partitioning the system, often can reduce the applications' execution times, but at the expense of reducing the overall system utilization. To address this problem, there has been increasing interest in dynamically allocating processors to applications based on their resource demands and the dynamically varying system load. The Loop-Level Process Control (LLPC) policy (Yue K, Lilja D. Efficient execution of parallel applications in multiprogrammed multiprocessor systems. 10th International Parallel Processing Symposium, 1996; 448-456) dynamically adjusts the number of threads an application is allowed to execute based on the application's available parallelism and the overall system load. This study demonstrates the feasibility of incorporating the LLPC strategy into an existing commercial operating system and parallelizing compiler and provides further evidence of the performance improvement that is possible using this dynamic allocation strategy. In this implementation, applications are automatically parallelized and enhanced with the appropriate LLPC hooks so that each application interacts with the modified version of the Solaris operating system. The parallelism of the applications are then dynamically adjusted automatically when they are executed in a multiprogrammed environment so that all applications obtain a fair share of the total processing resources.

KW - Multiprogramming

KW - Operating system

KW - Parallelizing compiler

KW - Performance measurement

KW - Process scheduling

KW - Processor allocation

KW - Shared-memory multiprocessor

UR - http://www.scopus.com/inward/record.url?scp=0035336094&partnerID=8YFLogxK

UR - http://www.scopus.com/inward/citedby.url?scp=0035336094&partnerID=8YFLogxK

U2 - 10.1002/cpe.585

DO - 10.1002/cpe.585

M3 - Article

AN - SCOPUS:0035336094

VL - 13

SP - 449

EP - 464

JO - Concurrency Computation

JF - Concurrency Computation

SN - 1532-0626

IS - 6

ER -