Thread reinforcer: Dynamically determining number of threads via OS level monitoring
It is often assumed that to maximize the performance of a multithreaded application, the number of threads created should equal the number of cores. While this may be true for systems with four or eight cores, this is not true for systems with larger number of cores. Our experiments with PARSEC prog...
Gespeichert in:
Hauptverfasser: | , , |
---|---|
Format: | Tagungsbericht |
Sprache: | eng |
Schlagworte: | |
Online-Zugang: | Volltext bestellen |
Tags: |
Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
|
container_end_page | 125 |
---|---|
container_issue | |
container_start_page | 116 |
container_title | |
container_volume | |
creator | Pusukuri, K. K. Gupta, R. Bhuyan, L. N. |
description | It is often assumed that to maximize the performance of a multithreaded application, the number of threads created should equal the number of cores. While this may be true for systems with four or eight cores, this is not true for systems with larger number of cores. Our experiments with PARSEC programs on a 24-core machine demonstrate this. Therefore, dynamically determining the appropriate number of threads for a multithreaded application is an important unsolved problem. In this paper we develop a simple technique for dynamically determining appropriate number of threads without recompiling the application or using complex compilation techniques or modifying Operating System policies. We first present a scalability study of eight programs from PARSEC conducted on a 24 core Dell PowerEdge R905 server running OpenSolaris.2009.06 for numbers of threads ranging from a few threads to 128 threads. Our study shows that not only does the maximum speedup achieved by these programs vary widely (from 3.6x to 21.9x), the number of threads that produce maximum speedups also vary widely (from 16 to 63 threads). By understanding the overall speedup behavior of these programs we identify the critical Operating System level factors that explain why the speedups vary with the number of threads. As an application of these observations, we develop a framework called "Thread Reinforcer" that dynamically monitors program's execution to search for the number of threads that are likely to yield best speedups. Thread Reinforcer identifies optimal or near optimal number of threads for most of the PARSEC programs studied and as well as for SPEC OMP and PBZIP2 programs. |
doi_str_mv | 10.1109/IISWC.2011.6114208 |
format | Conference Proceeding |
fullrecord | <record><control><sourceid>ieee_6IE</sourceid><recordid>TN_cdi_ieee_primary_6114208</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><ieee_id>6114208</ieee_id><sourcerecordid>6114208</sourcerecordid><originalsourceid>FETCH-LOGICAL-i219t-8038ab635250249d413343aeee3741305b3e6bc4c0fa536ead34b350bf610a33</originalsourceid><addsrcrecordid>eNo1UNtKxDAQjYigrv0BfckPdJ1k0qT1TaqrhYV92IKPS9pONdKLpHWhf2_QdV7mHJhzYRi7FbAWArL7oti_5WsJQqy1EEpCesauhUqMkaCVOWdRZtJ_jskli6bpE8JoAyDkFSvLD0-24Z7c0I6-Jv_An5bB9q62XbfwhmbyvRvc8M6H774iz8eWz7-iiR-d5bs97-hIHe_Hwc2jD5c37KK13UTRaa9YuXku89d4u3sp8sdt7KTI5jgFTG0VaskEpMoaJRAVWiJCEzAkFZKualVDaxPUIRFVhQlUrRZgEVfs7s_WBcnhy7ve-uVw-gP-AMrBUT4</addsrcrecordid><sourcetype>Publisher</sourcetype><iscdi>true</iscdi><recordtype>conference_proceeding</recordtype></control><display><type>conference_proceeding</type><title>Thread reinforcer: Dynamically determining number of threads via OS level monitoring</title><source>IEEE Electronic Library (IEL) Conference Proceedings</source><creator>Pusukuri, K. K. ; Gupta, R. ; Bhuyan, L. N.</creator><creatorcontrib>Pusukuri, K. K. ; Gupta, R. ; Bhuyan, L. N.</creatorcontrib><description>It is often assumed that to maximize the performance of a multithreaded application, the number of threads created should equal the number of cores. While this may be true for systems with four or eight cores, this is not true for systems with larger number of cores. Our experiments with PARSEC programs on a 24-core machine demonstrate this. Therefore, dynamically determining the appropriate number of threads for a multithreaded application is an important unsolved problem. In this paper we develop a simple technique for dynamically determining appropriate number of threads without recompiling the application or using complex compilation techniques or modifying Operating System policies. We first present a scalability study of eight programs from PARSEC conducted on a 24 core Dell PowerEdge R905 server running OpenSolaris.2009.06 for numbers of threads ranging from a few threads to 128 threads. Our study shows that not only does the maximum speedup achieved by these programs vary widely (from 3.6x to 21.9x), the number of threads that produce maximum speedups also vary widely (from 16 to 63 threads). By understanding the overall speedup behavior of these programs we identify the critical Operating System level factors that explain why the speedups vary with the number of threads. As an application of these observations, we develop a framework called "Thread Reinforcer" that dynamically monitors program's execution to search for the number of threads that are likely to yield best speedups. Thread Reinforcer identifies optimal or near optimal number of threads for most of the PARSEC programs studied and as well as for SPEC OMP and PBZIP2 programs.</description><identifier>ISBN: 9781457720635</identifier><identifier>ISBN: 1457720639</identifier><identifier>EISBN: 1457720647</identifier><identifier>EISBN: 9781457720642</identifier><identifier>EISBN: 9781457720628</identifier><identifier>EISBN: 1457720620</identifier><identifier>DOI: 10.1109/IISWC.2011.6114208</identifier><language>eng</language><publisher>IEEE</publisher><subject>Instruction sets ; Monitoring ; Multicore processing ; Operating systems ; Optimized production technology ; Scalability ; Tuning</subject><ispartof>2011 IEEE International Symposium on Workload Characterization (IISWC), 2011, p.116-125</ispartof><oa>free_for_read</oa><woscitedreferencessubscribed>false</woscitedreferencessubscribed></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><linktohtml>$$Uhttps://ieeexplore.ieee.org/document/6114208$$EHTML$$P50$$Gieee$$H</linktohtml><link.rule.ids>309,310,780,784,789,790,2058,27925,54920</link.rule.ids><linktorsrc>$$Uhttps://ieeexplore.ieee.org/document/6114208$$EView_record_in_IEEE$$FView_record_in_$$GIEEE</linktorsrc></links><search><creatorcontrib>Pusukuri, K. K.</creatorcontrib><creatorcontrib>Gupta, R.</creatorcontrib><creatorcontrib>Bhuyan, L. N.</creatorcontrib><title>Thread reinforcer: Dynamically determining number of threads via OS level monitoring</title><title>2011 IEEE International Symposium on Workload Characterization (IISWC)</title><addtitle>IISWC</addtitle><description>It is often assumed that to maximize the performance of a multithreaded application, the number of threads created should equal the number of cores. While this may be true for systems with four or eight cores, this is not true for systems with larger number of cores. Our experiments with PARSEC programs on a 24-core machine demonstrate this. Therefore, dynamically determining the appropriate number of threads for a multithreaded application is an important unsolved problem. In this paper we develop a simple technique for dynamically determining appropriate number of threads without recompiling the application or using complex compilation techniques or modifying Operating System policies. We first present a scalability study of eight programs from PARSEC conducted on a 24 core Dell PowerEdge R905 server running OpenSolaris.2009.06 for numbers of threads ranging from a few threads to 128 threads. Our study shows that not only does the maximum speedup achieved by these programs vary widely (from 3.6x to 21.9x), the number of threads that produce maximum speedups also vary widely (from 16 to 63 threads). By understanding the overall speedup behavior of these programs we identify the critical Operating System level factors that explain why the speedups vary with the number of threads. As an application of these observations, we develop a framework called "Thread Reinforcer" that dynamically monitors program's execution to search for the number of threads that are likely to yield best speedups. Thread Reinforcer identifies optimal or near optimal number of threads for most of the PARSEC programs studied and as well as for SPEC OMP and PBZIP2 programs.</description><subject>Instruction sets</subject><subject>Monitoring</subject><subject>Multicore processing</subject><subject>Operating systems</subject><subject>Optimized production technology</subject><subject>Scalability</subject><subject>Tuning</subject><isbn>9781457720635</isbn><isbn>1457720639</isbn><isbn>1457720647</isbn><isbn>9781457720642</isbn><isbn>9781457720628</isbn><isbn>1457720620</isbn><fulltext>true</fulltext><rsrctype>conference_proceeding</rsrctype><creationdate>2011</creationdate><recordtype>conference_proceeding</recordtype><sourceid>6IE</sourceid><sourceid>RIE</sourceid><recordid>eNo1UNtKxDAQjYigrv0BfckPdJ1k0qT1TaqrhYV92IKPS9pONdKLpHWhf2_QdV7mHJhzYRi7FbAWArL7oti_5WsJQqy1EEpCesauhUqMkaCVOWdRZtJ_jskli6bpE8JoAyDkFSvLD0-24Z7c0I6-Jv_An5bB9q62XbfwhmbyvRvc8M6H774iz8eWz7-iiR-d5bs97-hIHe_Hwc2jD5c37KK13UTRaa9YuXku89d4u3sp8sdt7KTI5jgFTG0VaskEpMoaJRAVWiJCEzAkFZKualVDaxPUIRFVhQlUrRZgEVfs7s_WBcnhy7ve-uVw-gP-AMrBUT4</recordid><startdate>20110101</startdate><enddate>20110101</enddate><creator>Pusukuri, K. K.</creator><creator>Gupta, R.</creator><creator>Bhuyan, L. N.</creator><general>IEEE</general><scope>6IE</scope><scope>6IL</scope><scope>CBEJK</scope><scope>RIE</scope><scope>RIL</scope></search><sort><creationdate>20110101</creationdate><title>Thread reinforcer: Dynamically determining number of threads via OS level monitoring</title><author>Pusukuri, K. K. ; Gupta, R. ; Bhuyan, L. N.</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-LOGICAL-i219t-8038ab635250249d413343aeee3741305b3e6bc4c0fa536ead34b350bf610a33</frbrgroupid><rsrctype>conference_proceedings</rsrctype><prefilter>conference_proceedings</prefilter><language>eng</language><creationdate>2011</creationdate><topic>Instruction sets</topic><topic>Monitoring</topic><topic>Multicore processing</topic><topic>Operating systems</topic><topic>Optimized production technology</topic><topic>Scalability</topic><topic>Tuning</topic><toplevel>online_resources</toplevel><creatorcontrib>Pusukuri, K. K.</creatorcontrib><creatorcontrib>Gupta, R.</creatorcontrib><creatorcontrib>Bhuyan, L. N.</creatorcontrib><collection>IEEE Electronic Library (IEL) Conference Proceedings</collection><collection>IEEE Proceedings Order Plan All Online (POP All Online) 1998-present by volume</collection><collection>IEEE Xplore All Conference Proceedings</collection><collection>IEEE Electronic Library (IEL)</collection><collection>IEEE Proceedings Order Plans (POP All) 1998-Present</collection></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext_linktorsrc</fulltext></delivery><addata><au>Pusukuri, K. K.</au><au>Gupta, R.</au><au>Bhuyan, L. N.</au><format>book</format><genre>proceeding</genre><ristype>CONF</ristype><atitle>Thread reinforcer: Dynamically determining number of threads via OS level monitoring</atitle><btitle>2011 IEEE International Symposium on Workload Characterization (IISWC)</btitle><stitle>IISWC</stitle><date>2011-01-01</date><risdate>2011</risdate><spage>116</spage><epage>125</epage><pages>116-125</pages><isbn>9781457720635</isbn><isbn>1457720639</isbn><eisbn>1457720647</eisbn><eisbn>9781457720642</eisbn><eisbn>9781457720628</eisbn><eisbn>1457720620</eisbn><abstract>It is often assumed that to maximize the performance of a multithreaded application, the number of threads created should equal the number of cores. While this may be true for systems with four or eight cores, this is not true for systems with larger number of cores. Our experiments with PARSEC programs on a 24-core machine demonstrate this. Therefore, dynamically determining the appropriate number of threads for a multithreaded application is an important unsolved problem. In this paper we develop a simple technique for dynamically determining appropriate number of threads without recompiling the application or using complex compilation techniques or modifying Operating System policies. We first present a scalability study of eight programs from PARSEC conducted on a 24 core Dell PowerEdge R905 server running OpenSolaris.2009.06 for numbers of threads ranging from a few threads to 128 threads. Our study shows that not only does the maximum speedup achieved by these programs vary widely (from 3.6x to 21.9x), the number of threads that produce maximum speedups also vary widely (from 16 to 63 threads). By understanding the overall speedup behavior of these programs we identify the critical Operating System level factors that explain why the speedups vary with the number of threads. As an application of these observations, we develop a framework called "Thread Reinforcer" that dynamically monitors program's execution to search for the number of threads that are likely to yield best speedups. Thread Reinforcer identifies optimal or near optimal number of threads for most of the PARSEC programs studied and as well as for SPEC OMP and PBZIP2 programs.</abstract><pub>IEEE</pub><doi>10.1109/IISWC.2011.6114208</doi><tpages>10</tpages><oa>free_for_read</oa></addata></record> |
fulltext | fulltext_linktorsrc |
identifier | ISBN: 9781457720635 |
ispartof | 2011 IEEE International Symposium on Workload Characterization (IISWC), 2011, p.116-125 |
issn | |
language | eng |
recordid | cdi_ieee_primary_6114208 |
source | IEEE Electronic Library (IEL) Conference Proceedings |
subjects | Instruction sets Monitoring Multicore processing Operating systems Optimized production technology Scalability Tuning |
title | Thread reinforcer: Dynamically determining number of threads via OS level monitoring |
url | https://sfx.bib-bvb.de/sfx_tum?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2025-01-05T02%3A49%3A54IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-ieee_6IE&rft_val_fmt=info:ofi/fmt:kev:mtx:book&rft.genre=proceeding&rft.atitle=Thread%20reinforcer:%20Dynamically%20determining%20number%20of%20threads%20via%20OS%20level%20monitoring&rft.btitle=2011%20IEEE%20International%20Symposium%20on%20Workload%20Characterization%20(IISWC)&rft.au=Pusukuri,%20K.%20K.&rft.date=2011-01-01&rft.spage=116&rft.epage=125&rft.pages=116-125&rft.isbn=9781457720635&rft.isbn_list=1457720639&rft_id=info:doi/10.1109/IISWC.2011.6114208&rft_dat=%3Cieee_6IE%3E6114208%3C/ieee_6IE%3E%3Curl%3E%3C/url%3E&rft.eisbn=1457720647&rft.eisbn_list=9781457720642&rft.eisbn_list=9781457720628&rft.eisbn_list=1457720620&disable_directlink=true&sfx.directlink=off&sfx.report_link=0&rft_id=info:oai/&rft_id=info:pmid/&rft_ieee_id=6114208&rfr_iscdi=true |