<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html lang="en-us" xml:lang="en-us"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="security" content="public" /> <meta name="Robots" content="index,follow" /> <meta http-equiv="PICS-Label" content='(PICS-1.1 "http://www.icra.org/ratingsv02.html" l gen true r (cz 1 lz 1 nz 1 oz 1 vz 1) "http://www.rsac.org/ratingsv01.html" l gen true r (n 0 s 0 v 0 l 0) "http://www.classify.org/safesurf/" l gen true r (SS~~000 1))' /> <meta name="DC.Type" content="concept" /> <meta name="DC.Title" content="Determine when to use simultaneous multithreading" /> <meta name="abstract" content="Simultaneous multithreading allows sharing of process facilities to run two applications or two threads of the same application at the same time. Find out more about this concept." /> <meta name="description" content="Simultaneous multithreading allows sharing of process facilities to run two applications or two threads of the same application at the same time. Find out more about this concept." /> <meta name="DC.Relation" scheme="URI" content="rzahxtune.htm" /> <meta name="DC.Relation" scheme="URI" content="../rzakz/rzakzqprcmlttsk.htm" /> <meta name="DC.Relation" scheme="URI" content="../books/sc410607.pdf" /> <meta name="copyright" content="(C) Copyright IBM Corporation 1998, 2006" /> <meta name="DC.Rights.Owner" content="(C) Copyright IBM Corporation 1998, 2006" /> <meta name="DC.Format" content="XHTML" /> <meta name="DC.Identifier" content="rzahxmultithread" /> <meta name="DC.Language" content="en-us" /> <!-- All rights reserved. Licensed Materials Property of IBM --> <!-- US Government Users Restricted Rights --> <!-- Use, duplication or disclosure restricted by --> <!-- GSA ADP Schedule Contract with IBM Corp. --> <link rel="stylesheet" type="text/css" href="./ibmdita.css" /> <link rel="stylesheet" type="text/css" href="./ic.css" /> <title>Determine when to use simultaneous multithreading</title> </head> <body id="rzahxmultithread"><a name="rzahxmultithread"><!-- --></a> <!-- Java sync-link --><script language="Javascript" src="../rzahg/synch.js" type="text/javascript"></script> <h1 class="topictitle1">Determine when to use simultaneous multithreading</h1> <div><p>Simultaneous multithreading allows sharing of process facilities to run two applications or two threads of the same application at the same time. Find out more about this concept.</p> <p>Although an operating system gives the impression that it is concurrently executing a very large number of tasks, each processor in a symmetric multiprocessor (SMP) traditionally executes a single task's instruction stream at any moment in time. The QPRCMLTTSK system value controls whether to enable the individual SMP processors to concurrently execute multiple instruction streams. Each instruction stream belongs to separate tasks or threads. When enabled, each individual processor is concurrently executing multiple tasks at the same time. The effect of its use will likely increase the performance capacity of a system or improve the responsiveness of a multithreaded application. Running multiple instruction streams at the same time does not improve the performance of any given task. As is the case with any performance recommendations, results vary in different environments.</p> <p>The way that multithreading is done depends on the hardware model, and therefore, the performance capacity gains will vary. IBM<sup>®</sup> eServer™ 5<em>xx</em> models support this approach through a concept called simultaneous multithreading (SMT). This approach, called hyperthreading on some Intel<sup>®</sup> processors, shares processor facilities to execute each task's instructions at the same time. Older processors use an approach called hardware multithreading (HMT). In the hardware multithreading approach, the hardware switches between the tasks on any long processing delay event, for example, a cache miss. Some models do not support any form of multithreading, which means the QPRCMLTTSK system value has no performance effect.</p> <p>Because the QPRCMLTTSK system value enables the parallel use of shared processor resources, the performance gains depend highly on the application and the model. Refer to the <cite><span class="keyword">iSeries™</span> Performance Capabilities Reference</cite> for guidelines about what performance gains might be expected through its use. In some cases, some applications are better served by disabling this system value.</p> </div> <div> <div class="familylinks"> <div class="parentlink"><strong>Parent topic:</strong> <a href="rzahxtune.htm" title="When you have identified a performance problem, you will want to tune the system to fix it.">Tune performance</a></div> </div> <div class="relref"><strong>Related reference</strong><br /> <div><a href="../rzakz/rzakzqprcmlttsk.htm">QPRCMLTTSK system value</a></div> </div> <div class="relinfo"><strong>Related information</strong><br /> <div><a href="../books/sc410607.pdf" target="_blank">iSeries Performance Capabilities Reference PDF</a></div> </div> </div> </body> </html>