<div dir="ltr">On Fri, May 5, 2017 at 11:37 AM, Khamesra, Bhavesh &lt;<a href="mailto:bhaveshkhamesra@gatech.edu">bhaveshkhamesra@gatech.edu</a>&gt; wrote:<br>&gt;<br>&gt; Hi Erik, Thanks for the reply. I tried playing with num-threads options in machine files and was able to run the QC0 on development node. Reducing the num-threads to 17 keeping number of cores to 64<br><br>Bhavesh<br><br><div>This combination doesn&#39;t make sense; the number of cores needs to be a multiple of the number of threads. I would try 68 cores and 4 threads; as I mentioned, using fewer threads is currently more efficient.</div><div> <br>&gt; showed some increase in the speed but it is still quite low -  around 13-16M/hour compared the 55-65 M/hour in stampede. For GW150914, the speed on KNL is around 3.5-4M/hour compared to 12M/hour on Stampede. I also briefly looked at TimerReport but any particular thorn did not stand out. I will study it in more detail.</div><div><br></div><div>When you measured these speeds, how many nodes did you use each time?</div><div><br></div><div>Yes, you will need to look at timer output to find out e.g. whether the time is spend doing I/O.</div><div><br></div><div>You can also look at how much memory is used per core. As a general rule, using more memory per core is more efficient. If you are using only a very small fraction of the available memory (&lt;10%), or if there are many more ghost points than interior points, then your setup is likely inefficient.</div><div><br></div><div>&gt; In general, how can I find the optimized values of &#39;turning knobs&#39; (except trial and error method) and what are the constraints on them? What are the general options/parameters I can change to boost up the performance? I also had several questions about various options in machine files and about optimization and MPI in general. Can you suggest some reference where I can read more about this?</div><div><br></div><div>That is a very good question. I do not have a good answer to it. (This is why it is a good question.) This information is, unfortunately, only passed on from grad student to grad student (or from postdoc to postdoc). There really should be a tutorial and some larger documentation that addresses this.</div><div><br></div><div>Before you can optimize the values of the knobs, you need to know what knobs there actually are.</div><div><br></div><div>The best offer I can make is to ask many questions while keeping notes, or to visit an experienced Einstein Toolkit user and camp out near their desk asking many questions. You can also ask people for their tuned parameter files and compare, and also ask people about their run times and speeds so that you have a basis for the comparison. (You are already doing this.)</div><div><br></div><div>There are three kinds of knobs that influence performance</div><div>- knobs that change the physics; usually, when you write a paper, you want to keep these fixed</div><div>- knobs that change the numerical approximate, such as the resolution or grid structure</div><div>- knobs that change how the simulation runs, such as the number of cores, threads, or how often to do output</div><div><br></div><div>When running a simulation, you want to begin by tuning the third kind of knob. When you&#39;ve found some reasonable optimum, you can move on to the second kind and experiment what resolution etc. you need to solve a particular physics question.</div><div><br></div><div>&gt; Lastly, the crashing the GW150914 in normal queue doesn&#39;t seem to be due to this reason (but I may be wrong). The error file shows segmentation fault errors. I was browsing through the past tickets and found that you had also encountered a similar segfault issue on KNL. Were you able to resolve it? I am attaching the error file, could you please look at it?</div><div><br></div><div>I have heard of such a segfault before. I assume it is caused by using too many processes or too many threads for a particular resolution. I have not yet reproduced it, and I don&#39;t know what causes it. It would be helpful if you could produce a stack backtrace or similar. On the other hand, if this segfault only appears for very inefficient configurations, then there is no urgent need to debug this, as people won&#39;t be interested in using such configurations anyway.</div><div><br></div><div>All the best. Please keep asking.</div><div><br></div><div>-erik</div><div><br></div><div><br>&gt;<br>&gt;<br>&gt; Thanks<br>&gt;<br>&gt; .............................<br>&gt;<br>&gt; Bhavesh Khamesra<br>&gt;<br>&gt; Graduate Student<br>&gt;<br>&gt; Centre of Relativistic Astrophysics<br>&gt;<br>&gt; Georgia Institute of Technology<br>&gt;<br>&gt; ________________________________<br>&gt; From: <a href="mailto:schnetter@gmail.com">schnetter@gmail.com</a> &lt;<a href="mailto:schnetter@gmail.com">schnetter@gmail.com</a>&gt; on behalf of Erik Schnetter &lt;<a href="mailto:schnetter@cct.lsu.edu">schnetter@cct.lsu.edu</a>&gt;<br>&gt; Sent: Wednesday, May 3, 2017 4:59:16 PM<br>&gt; To: Khamesra, Bhavesh<br>&gt; Cc: <a href="mailto:users@einsteintoolkit.org">users@einsteintoolkit.org</a><br>&gt; Subject: Re: [Users] Benchmarking<br>&gt;  <br>&gt; Bhavesh<br>&gt;<br>&gt; To be exact, the remedy for this particular Slab error is not to use more cores, but to use more MPI processes. You can keep the number of cores constant if you reduce the number of OpenMP threads per MPI process.<br>&gt;<br>&gt; Given that you are benchmarking, you should anyway experiment with these parameters, as performance can crucially depend on them. Usually, using fewer threads and more processes is more efficient for small core counts.<br>&gt;<br>&gt; Finally, only comparing the overall run time is not sufficient to make a statement about performance. Each run has several &quot;tuning knobs&quot;, and choosing the right values for these is important to achieve good performance. Using the default settings will often lead to quite poor performance. Cactus timer output as well as experience with performing runs on HPC systems is indispensable to get good performance.<br>&gt;<br>&gt; -erik<br>&gt;<br>&gt;<br>&gt; On Tue, May 2, 2017 at 5:09 PM, Khamesra, Bhavesh &lt;<a href="mailto:bhaveshkhamesra@gatech.edu">bhaveshkhamesra@gatech.edu</a>&gt; wrote:<br>&gt;&gt;<br>&gt;&gt; Hi, I have sent the pull request with the optionlist for Stampede - KNL on Bitbucket simfactory repo. I have tested this with a couple of thornlists including the <a href="http://einsteintoolkit.th">einsteintoolkit.th</a> and GW150914.th. This is still in experimental stage and so would be great if someone could also test it.<br>&gt;&gt;<br>&gt;&gt;<br>&gt;&gt; Working on benchmarking the performance on Stampede KNL, I was able to do some test runs using the GW150914 simulation. However, I have been running into some issues with it.<br>&gt;&gt;<br>&gt;&gt;<br>&gt;&gt; 1. I tried running QC0 simulation on both Stampede SandyBridge and KNL. While it runs fine on Stampede but it crashes on KNL with this error -<br>&gt;&gt;<br>&gt;&gt; while executing schedule bin BoundaryConditions, routine RotatingSymmetry180::Rot180_ApplyBC in thorn RotatingSymmetry180, file /work/04082/tg833814/Cactus_ETK_dev/arrangements/CactusNumerical/RotatingSymmetry180/src/rotatingsymmetry180.c:460:                                                           <br>&gt;&gt;   -&gt; TAT/Slab can only be used if there is a single local component per MPI process<br>&gt;&gt; TACC: MPI job exited with code: 134<br>&gt;&gt; I looked up at previous tickets and found the solution to increase the number of cores. But if the same simulation can be run on stampede on 64 cores, why does it require higher number of cores on KNL? Or is it some other issue?<br>&gt;&gt;<br>&gt;&gt; 2. I was able to run GW150914 on development queue (68 cores) and the speeds on Stampede were around 12.9M while that on KNL goes around 2.4M. To understand the reason for such small speeds, I tried running this on higher number of cores on  Stampede (128) and it runs at speed of around 20.9M (tested the run for 12 hours). However, on doing the same in normal queue in KNL, the simulation crashes after a couple of iterations on KNL with some segmentation fault error. Also, before crashing, the speed on KNL is around 4.2M. I have attached the error file of the simulation.<br>&gt;&gt;<br>&gt;&gt;<br>&gt;&gt; Could someone please look at this? Let me know if you need any other information.<br>&gt;&gt;<br>&gt;&gt;<br>&gt;&gt; Thanks<br>&gt;&gt;<br>&gt;&gt; .............................<br>&gt;&gt;<br>&gt;&gt; Bhavesh Khamesra<br>&gt;&gt;<br>&gt;&gt; Graduate Student<br>&gt;&gt;<br>&gt;&gt; Centre of Relativistic Astrophysics<br>&gt;&gt;<br>&gt;&gt; Georgia Institute of Technology<br>&gt;&gt;<br>&gt;&gt;<br>&gt;&gt; _______________________________________________<br>&gt;&gt; Users mailing list<br>&gt;&gt; <a href="mailto:Users@einsteintoolkit.org">Users@einsteintoolkit.org</a><br>&gt;&gt; <a href="http://lists.einsteintoolkit.org/mailman/listinfo/users">http://lists.einsteintoolkit.org/mailman/listinfo/users</a><br>&gt;&gt;<br>&gt;<br>&gt;<br>&gt;<br>&gt; --<br>&gt; Erik Schnetter &lt;<a href="mailto:schnetter@cct.lsu.edu">schnetter@cct.lsu.edu</a>&gt;<br>&gt; <a href="http://www.perimeterinstitute.ca/personal/eschnetter/">http://www.perimeterinstitute.ca/personal/eschnetter/</a><br>&gt;<br><br><br><br>--<br>Erik Schnetter &lt;<a href="mailto:schnetter@cct.lsu.edu">schnetter@cct.lsu.edu</a>&gt;<br><a href="http://www.perimeterinstitute.ca/personal/eschnetter/">http://www.perimeterinstitute.ca/personal/eschnetter/</a></div></div>