{"id":146,"date":"2017-04-24T15:19:42","date_gmt":"2017-04-24T14:19:42","guid":{"rendered":"http:\/\/ri.itservices.manchester.ac.uk\/htccondor\/?page_id=146"},"modified":"2017-05-31T15:07:37","modified_gmt":"2017-05-31T14:07:37","slug":"wholenode","status":"publish","type":"page","link":"https:\/\/ri.itservices.manchester.ac.uk\/htccondor\/jobs\/wholenode\/","title":{"rendered":"Taking Advantage of Dynamic Slots \u2013 or how to claim a PC rather than a Core DynamicSlots"},"content":{"rendered":"<h2>Introduction<\/h2>\n<p>The condor pool uses so-called Dynamic Slots.<\/p>\n<p>What this means is that the PCs can function:<\/p>\n<ul>\n<li>run a job per core; or<\/li>\n<li>you can request the entire machine.<\/li>\n<li>(Something in between the two extremes is also possible.)\n<\/ul>\n<p>Whether in use or not, the top level of a partitionable, dynamic slot always appears Unclaimed. When in use, sub-slots appear as Claimed. They appear as slot1_1, slot1_2, etc., up to the  number of cores on the PC. (You will also see slot1.1, slot1.2, as this nomenclature varies slightly with the version of Condor.)<\/p>\n<h3>Why would I want this facility?<\/h3>\n<p>There are two main reasons:<\/p>\n<ul>\n<li>your job requires access to some resource, for example the Graphics Processing Unit, and no one else must have the PC at the same time<\/li>\n<li>your job needs a lot of memory (RAM) and\/or takes advantage of multicore support within your application<\/li>\n<\/ul>\n<h2>How do I use this facility?<\/h2>\n<p>First of all you identify in your Requirements line, of the submit.txt file, that you want dynamic slots:<\/p>\n<pre>\r\n... && (HAS_DYNAMIC =?= True)\r\n<\/pre>\n<p>If, further, you want to make sure you get the entire PC, you need to know how many cores it has. To this end, we have added classads: <code>HAS_DYNAMIC4<\/code>, <code>HAS_DYNAMIC8<\/code> and <code>HAS_DYNAMIC16<\/code>, with the obvious meaning. Clearly, if we get PCs with more cores, more such classads will appear. So, if you want to target partitionable machines with 4 cores, you would change the above line to:<\/p>\n<pre>\r\n... && (HAS_DYNAMIC4 =?= True)\r\n<\/pre>\n<p>Further modification to your submit file<\/p>\n<p>The last thing you need to do is add the following extra line to your submit file:<br \/>\n<code><br \/>\nRequest_CPUs = 4<br \/>\n<\/code><br \/>\nagain the 4 could be 8 if you only want our 8 core PCs (or 16 for 16 core machines, etc). The default is 1, which is why if you make no changes to your scripts dynamic slots will behave much like static ones.<\/p>\n<p>You should also add:<\/p>\n<pre>\r\nRequest_Memory = mmm\r\n<\/pre>\n<p>and optionally if needed<\/p>\n<pre>\r\nRequest_Disk = kkkkkk\r\n<\/pre>\n<p>where <code>mmm<\/code> is in megabytes and <code>kkkkkk<\/code> is in kilobytes.<\/p>\n<h2>Special Case of Claiming all of a PC of Any Core Size<\/h2>\n<p>Sometimes it is desirable to be able to claim all of a PC no matter how many cores it has. Further, in such cases one normally would like the PCs with the most cores to be allocated first. The above simple <code>HAS_DYNAMIC<\/code> classads cannot easily be used for this case. Use the following template, where the <code>\u2026<\/code> in the Requirements line stands for whatever other requirements you have.<\/p>\n<pre>\r\nRequirements = \u2026 && (Target.TotalCpus =!= UNDEFINED) && ((Target.PartitionableSlot =?= TRUE) || (Target.DynamicSlot =?= TRUE))\r\nRank = Target.TotalCpus\r\nRequest_CPUs = Target.TotalCpus\r\nRequest_Memory = 3000\r\n<\/pre>\n<h2>Further information<\/h2>\n<p>Please contact us if you need any help with any of the above.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction The condor pool uses so-called Dynamic Slots. What this means is that the PCs can function: run a job per core; or you can request the entire machine. (Something in between the two extremes is also possible.) Whether in use or not, the top level of a partitionable, dynamic slot always appears Unclaimed. When in use, sub-slots appear as Claimed. They appear as slot1_1, slot1_2, etc., up to the number of cores on the.. <a href=\"https:\/\/ri.itservices.manchester.ac.uk\/htccondor\/jobs\/wholenode\/\">Read more &raquo;<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"parent":14,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-146","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/ri.itservices.manchester.ac.uk\/htccondor\/wp-json\/wp\/v2\/pages\/146","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ri.itservices.manchester.ac.uk\/htccondor\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/ri.itservices.manchester.ac.uk\/htccondor\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/ri.itservices.manchester.ac.uk\/htccondor\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/ri.itservices.manchester.ac.uk\/htccondor\/wp-json\/wp\/v2\/comments?post=146"}],"version-history":[{"count":8,"href":"https:\/\/ri.itservices.manchester.ac.uk\/htccondor\/wp-json\/wp\/v2\/pages\/146\/revisions"}],"predecessor-version":[{"id":285,"href":"https:\/\/ri.itservices.manchester.ac.uk\/htccondor\/wp-json\/wp\/v2\/pages\/146\/revisions\/285"}],"up":[{"embeddable":true,"href":"https:\/\/ri.itservices.manchester.ac.uk\/htccondor\/wp-json\/wp\/v2\/pages\/14"}],"wp:attachment":[{"href":"https:\/\/ri.itservices.manchester.ac.uk\/htccondor\/wp-json\/wp\/v2\/media?parent=146"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}