{"id":5399,"date":"2011-06-11T21:15:19","date_gmt":"2011-06-11T21:15:19","guid":{"rendered":"http:\/\/coates.ma.ic.ac.uk\/fanosearch\/?p=5399"},"modified":"2011-06-11T21:25:14","modified_gmt":"2011-06-11T21:25:14","slug":"logistics-update","status":"publish","type":"post","link":"http:\/\/coates.ma.ic.ac.uk\/fanosearch\/?p=5399","title":{"rendered":"Logistics update"},"content":{"rendered":"<p>A quick update on the 4-dimensional calculation.\u00a0 Right now we are calculating basic data (faces, degree, Hilbert series, integer points, smooth\/terminal\/canonical, etc.) for all the 4d reflexive polytopes in the Kreuzer&#8211;Skarke list.\u00a0 The current computational setup is: one central database server for distributing parts of the calculation, storing results, etc, and a number of &#8220;worker nodes&#8221;, which are jobs running on the Imperial Maths computer cluster.\u00a0 The worker nodes are where the calculations are actually done.<\/p>\n<p>Initially we were running with around 30 worker nodes, and the rate of progress suggested that the calculation would finish in about 4 years.\u00a0 This looked encouraging, as we will in the end use a much larger number of worker nodes (several hundred).\u00a0 But recently we have been running with more workers (60-80) and the calculation has slowed down considerably: at current rate it will finish in around 40 years.\u00a0 This seems strange, as we are now throwing more computer power at the problem.<\/p>\n<p>Al has discovered that the bottleneck is not the calculations themselves, but database locking.\u00a0 Since we need to check as part of our calculation that every polytope occurs only once in the list, only one worker may write to the results database at once.\u00a0 Thus it needs to get a lock on the results database before it writes to it, and frees that lock after it has finished writing data.\u00a0 Also there are several locking steps, with both read and write locks, in the code which distributes jobs to workers.\u00a0 Workers are spending a huge fraction of their time waiting for database locks, and it is this that is slowing the computation down.<\/p>\n<p>Al has had a clever idea about how to fix this, which should significantly decrease the locking overhead.\u00a0 Also we will move the databases which keep track of locks off Fano (the main database server) and onto their own dedicated machines; this should help a lot too.\u00a0 We will update here (and tweet) once we have a good idea of how the new code performs.\u00a0 Hopefully it will scale well, as the next steps involve managing calculations across many more computers.<\/p>\n<p>Future:<\/p>\n<ul>\n<li>more workers, running on the Imperial College HPC (High Performance Computing) service.\u00a0 This should be quick and easy to get going, a matter of a couple of weeks.<\/li>\n<li>more workers, running on SCAN (the Imperial Supercomputer At Night, which is ~200 PCs in the Maths department.\u00a0 This will take longer to set up, as the SCAN runs FreeBSD and so we need to get our worker nodes running under FreeBSD.\u00a0 The Magma team are working on a FreeBSD build of Magma (hooray!) but this is a new platform for them and so we will need to do some careful testing.<\/li>\n<li>the next steps in the 4d calculation.\u00a0 As soon as the locking issues are sorted out we should make a detailed plan for the next two or three months of calculations.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>A quick update on the 4-dimensional calculation.\u00a0 Right now we are calculating basic data (faces, degree, Hilbert series, integer points, smooth\/terminal\/canonical, etc.) for all the 4d reflexive polytopes in the Kreuzer&#8211;Skarke list.\u00a0 The current computational setup is: one central database server for distributing parts of the calculation, storing results, etc, and a number of &#8220;worker [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-5399","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/coates.ma.ic.ac.uk\/fanosearch\/index.php?rest_route=\/wp\/v2\/posts\/5399","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/coates.ma.ic.ac.uk\/fanosearch\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/coates.ma.ic.ac.uk\/fanosearch\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/coates.ma.ic.ac.uk\/fanosearch\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/coates.ma.ic.ac.uk\/fanosearch\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=5399"}],"version-history":[{"count":6,"href":"http:\/\/coates.ma.ic.ac.uk\/fanosearch\/index.php?rest_route=\/wp\/v2\/posts\/5399\/revisions"}],"predecessor-version":[{"id":5405,"href":"http:\/\/coates.ma.ic.ac.uk\/fanosearch\/index.php?rest_route=\/wp\/v2\/posts\/5399\/revisions\/5405"}],"wp:attachment":[{"href":"http:\/\/coates.ma.ic.ac.uk\/fanosearch\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=5399"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/coates.ma.ic.ac.uk\/fanosearch\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=5399"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/coates.ma.ic.ac.uk\/fanosearch\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=5399"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}