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...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Hauptverfasser: Pusukuri, K. K., Gupta, R., Bhuyan, L. N.
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