<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wikidot="http://www.wikidot.com/rss-namespace">

	<channel>
		<title>Ground state calculations for larger systems/organic systems</title>
		<link>http://exciting.wikidot.com/forum/t-669603/ground-state-calculations-for-larger-systems-organic-systems</link>
		<description>Posts in the discussion thread &quot;Ground state calculations for larger systems/organic systems&quot; - Looking for suggestions on how to approach DFT calculations for larger systems (48-150 atoms/unit cell) and if any additional considerations are needed when dealing with organics</description>
				<copyright></copyright>
		<lastBuildDate>Thu, 14 May 2026 07:52:56 +0000</lastBuildDate>
		
					<item>
				<guid>http://exciting.wikidot.com/forum/t-669603#post-1813528</guid>
				<title>(no title)</title>
				<link>http://exciting.wikidot.com/forum/t-669603/ground-state-calculations-for-larger-systems-organic-systems#post-1813528</link>
				<description></description>
				<pubDate>Fri, 12 Jul 2013 10:31:35 +0000</pubDate>
				<wikidot:authorName>smpat</wikidot:authorName>				<wikidot:authorUserId>1659882</wikidot:authorUserId>				<content:encoded>
					<![CDATA[
						 <p>I meant to post my results on this, but was away from the office yesterday afternoon.</p> <p>I found substantial improvement (this is, of course, case specific) with the submission</p> <p>#$ -N MYFILE<br /> #$ -cwd<br /> #$ -pe openmpi* 40<br /> #$ -q medium*<br /> export OMP_THREAD_LIMIT=30<br /> export OMP_NESTED=true<br /> mpirun /path/to/my/program</p> <p>My impression is that the number of threads created was counterproductive (although I am a novice in this area), and using OMP_THREAD_LIMIT with this specific value (in my case) yields the fastest computation time.</p> 
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://exciting.wikidot.com/forum/t-669603#post-1813325</guid>
				<title>(no title)</title>
				<link>http://exciting.wikidot.com/forum/t-669603/ground-state-calculations-for-larger-systems-organic-systems#post-1813325</link>
				<description></description>
				<pubDate>Thu, 11 Jul 2013 22:29:29 +0000</pubDate>
				<wikidot:authorName>Robert</wikidot:authorName>								<content:encoded>
					<![CDATA[
						 <p>Ok. So here is what I think. Your scheduler is basically setting the field for 16 mpi processes to open and for each to utilize 4 processors and communicate via smp (or openMP.)</p> <p>That said, I see no reason for you to have to specify OMP as well, so I'm not surprised that muddled things up.</p> <p>Also, Since you have now set the stage for an mpi+smp/openMP hybrid job, you need to run a hybrid application. So what you would need to run with this type of script is excitingmpismp.</p> <p>If you were to remove the &quot;dedicated=4&quot; part, then you could execute excitingmpi.</p> <p>If you used :<br /> #$ -pe threads 8<br /> #$ -N test<br /> /path/to/my/program</p> <p>then you could use excitingsmp</p> <p>I don't understand what you mean by &quot;<em>I haven't seen any improvement (in the computation times provided) with either of these lines, separately or together</em>.&quot;</p> 
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://exciting.wikidot.com/forum/t-669603#post-1812843</guid>
				<title>(no title)</title>
				<link>http://exciting.wikidot.com/forum/t-669603/ground-state-calculations-for-larger-systems-organic-systems#post-1812843</link>
				<description></description>
				<pubDate>Thu, 11 Jul 2013 05:12:46 +0000</pubDate>
				<wikidot:authorName>smpat</wikidot:authorName>				<wikidot:authorUserId>1659882</wikidot:authorUserId>				<content:encoded>
					<![CDATA[
						 <p>Thanks for looking into this, Robert. Here's what I'm able to post:</p> <p>newton.utk.edu#bin#view#Main#ParallelJobs</p> 
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://exciting.wikidot.com/forum/t-669603#post-1812726</guid>
				<title>(no title)</title>
				<link>http://exciting.wikidot.com/forum/t-669603/ground-state-calculations-for-larger-systems-organic-systems#post-1812726</link>
				<description></description>
				<pubDate>Thu, 11 Jul 2013 00:58:47 +0000</pubDate>
				<wikidot:authorName>Robert</wikidot:authorName>								<content:encoded>
					<![CDATA[
						 <p>I believe, if you want to run a hybrid mpi and openmp the typical execution for say 4 nodes with 12 processors per node would be&#8230;.</p> <p>OMP_NUM_THREADS=12</p> <p>mpirun -pernode [options] [program]</p> <p>in this case [program] would be excitingmpismp I would guess.</p> <p>can you post a link to the scheduling syntax Grid Engine uses? I realize it won't let you post a link so just &quot;sensor&quot; the obvious parts that identify it as a web url.</p> <p>I'm trying to understand what you are telling the scheduler. It seems like you are specifying OMP_NUM_THREADS to be both 4 and 16.</p> <p>Also, I asked you this before. What type of mpi/mpich are you using? mpich2? mvapich?</p> <p>That is important to know. You may ONLY have OpenMP.</p> 
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://exciting.wikidot.com/forum/t-669603#post-1812440</guid>
				<title>Re: Ground state calculations for larger systems/organic systems</title>
				<link>http://exciting.wikidot.com/forum/t-669603/ground-state-calculations-for-larger-systems-organic-systems#post-1812440</link>
				<description></description>
				<pubDate>Wed, 10 Jul 2013 15:45:00 +0000</pubDate>
				<wikidot:authorName>smpat</wikidot:authorName>				<wikidot:authorUserId>1659882</wikidot:authorUserId>				<content:encoded>
					<![CDATA[
						 <p>You might find this interesting: When I include export OMP_NUM_THREADS=4 with or without export OMP_NESTED=true, my computation time roughly doubles when compared to the general</p> <p>#$ -N BC2P2<br /> #$ -cwd<br /> #$ -pe openmpi* 16<br /> #$ -q medium*<br /> #$ -l dedicated=4</p> <p>mpirun ./elk</p> <p>I haven't seen any improvement (in the computation times provided) with either of these lines, separately or together. According to the INFO.OUT file, the example directly above seems to run the fastest. Unless, of course, the computation is inaccurate in elk output for OMP_NUM_THREADS=x as well.</p> 
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://exciting.wikidot.com/forum/t-669603#post-1812407</guid>
				<title>Re: Ground state calculations for larger systems/organic systems</title>
				<link>http://exciting.wikidot.com/forum/t-669603/ground-state-calculations-for-larger-systems-organic-systems#post-1812407</link>
				<description></description>
				<pubDate>Wed, 10 Jul 2013 15:15:02 +0000</pubDate>
				<wikidot:authorName>Andris Gulans</wikidot:authorName>				<wikidot:authorUserId>1358339</wikidot:authorUserId>				<content:encoded>
					<![CDATA[
						 <p>Sean,<br /> the example you have shown is exactly what I had in mind.</p> 
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://exciting.wikidot.com/forum/t-669603#post-1812401</guid>
				<title>(no title)</title>
				<link>http://exciting.wikidot.com/forum/t-669603/ground-state-calculations-for-larger-systems-organic-systems#post-1812401</link>
				<description></description>
				<pubDate>Wed, 10 Jul 2013 15:11:01 +0000</pubDate>
				<wikidot:authorName>Andris Gulans</wikidot:authorName>				<wikidot:authorUserId>1358339</wikidot:authorUserId>				<content:encoded>
					<![CDATA[
						 <p>Yes, you got it right, it is basically openmp, and you cannot run it across different nodes. In your case, the maximum number of threads that would make sense is 12.<br /> To compile an mpi-smp hybrid, try to execute &quot;make mpiandsmp&quot;.</p> 
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://exciting.wikidot.com/forum/t-669603#post-1812383</guid>
				<title>(no title)</title>
				<link>http://exciting.wikidot.com/forum/t-669603/ground-state-calculations-for-larger-systems-organic-systems#post-1812383</link>
				<description></description>
				<pubDate>Wed, 10 Jul 2013 14:51:08 +0000</pubDate>
				<wikidot:authorName>smpat</wikidot:authorName>				<wikidot:authorUserId>1659882</wikidot:authorUserId>				<content:encoded>
					<![CDATA[
						 <p>I'm not sure if this answers your question:</p> <p>&quot;We use a program (often known as a batch-scheduler or batch-queue) to coordinate this process of allocating resources. On Newton systems, the batch-scheduler is the Grid Engine.&quot;</p> <p>There's a link to the grid engine, but I'm not allowed to post it (not enough karma). It's the Newton HPC at Univ Tenn.</p> 
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://exciting.wikidot.com/forum/t-669603#post-1812373</guid>
				<title>(no title)</title>
				<link>http://exciting.wikidot.com/forum/t-669603/ground-state-calculations-for-larger-systems-organic-systems#post-1812373</link>
				<description></description>
				<pubDate>Wed, 10 Jul 2013 14:41:04 +0000</pubDate>
				<wikidot:authorName>Robert N</wikidot:authorName>								<content:encoded>
					<![CDATA[
						 <p>What type of scheduler are you submitting your jobs to smpat?</p> 
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://exciting.wikidot.com/forum/t-669603#post-1812369</guid>
				<title>(no title)</title>
				<link>http://exciting.wikidot.com/forum/t-669603/ground-state-calculations-for-larger-systems-organic-systems#post-1812369</link>
				<description></description>
				<pubDate>Wed, 10 Jul 2013 14:37:15 +0000</pubDate>
				<wikidot:authorName>Robert N</wikidot:authorName>								<content:encoded>
					<![CDATA[
						 <p>Andris,</p> <p>my version of exciting compiled with both the excitingmpi and excitingsmp binaries but not the hybrid.</p> <p>I have been executing the mpi version with the command &quot;mpiexec -np $NP excitingmpi&quot;</p> <p>this is of course through a PBS queue.</p> <p>I do not really understand how smp works, is that OpenMP? If so, it can only be executed on one node (shared memory) for a max of 12 processors in my case. Or is smp something different?</p> <p>How would you execute the excitingsmp binary? The same as the serial?</p> 
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://exciting.wikidot.com/forum/t-669603#post-1812366</guid>
				<title>Re: Ground state calculations for larger systems/organic systems</title>
				<link>http://exciting.wikidot.com/forum/t-669603/ground-state-calculations-for-larger-systems-organic-systems#post-1812366</link>
				<description></description>
				<pubDate>Wed, 10 Jul 2013 14:33:48 +0000</pubDate>
				<wikidot:authorName>smpat</wikidot:authorName>				<wikidot:authorUserId>1659882</wikidot:authorUserId>				<content:encoded>
					<![CDATA[
						 <p>My submission script for Elk (which I imagine will be similar to what I'll use once I figure out how to get Exciting online), has the form</p> <p>#$ -N BC2P2<br /> #$ -cwd<br /> #$ -pe openmpi* 16<br /> #$ -q medium*<br /> #$ -l dedicated=4</p> <p>export OMP_NUM_THREADS=4<br /> export OMP_NESTED=true<br /> mpirun ./elk</p> <p>Is this along the lines of what you were saying? OMP_NESTED=true supposedly parallelizes k-points, but I haven't noticed any difference with/without it.</p> <p>Yes, I'm referring to the timing information, but now that I know it's not accurate in this version I'll just time it myself.</p> 
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://exciting.wikidot.com/forum/t-669603#post-1812339</guid>
				<title>Re: Ground state calculations for larger systems/organic systems</title>
				<link>http://exciting.wikidot.com/forum/t-669603/ground-state-calculations-for-larger-systems-organic-systems#post-1812339</link>
				<description></description>
				<pubDate>Wed, 10 Jul 2013 13:55:56 +0000</pubDate>
				<wikidot:authorName>Andris Gulans</wikidot:authorName>				<wikidot:authorUserId>1358339</wikidot:authorUserId>				<content:encoded>
					<![CDATA[
						 <p>If you run your calculations interactively &quot;export OMP_NUM_THREADS=x&quot; will do the job. If you run them through a queueing system, it may be necessary to include the export line in a job-submit script or even to define it by other means supported by the queueing system. Sometimes it also happens that people forget to set OMP_NUM_THREADS to 1, when they do not intend a multithreaded run, but neverless use a binary with the multithreading support.</p> <p>&quot;the times for each loop reflect the speed of calculations&quot; - do you refer to the timing information in exciting? If so, the problem is that the time counting is not accurate in the lithium release. I would not rely on it. But the future release should not have this problem.</p> 
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://exciting.wikidot.com/forum/t-669603#post-1812312</guid>
				<title>Re: Ground state calculations for larger systems/organic systems</title>
				<link>http://exciting.wikidot.com/forum/t-669603/ground-state-calculations-for-larger-systems-organic-systems#post-1812312</link>
				<description></description>
				<pubDate>Wed, 10 Jul 2013 13:14:45 +0000</pubDate>
				<wikidot:authorName>smpat</wikidot:authorName>				<wikidot:authorUserId>1659882</wikidot:authorUserId>				<content:encoded>
					<![CDATA[
						 <p>Stupid question related to the environmental variable: can we just type &quot;export OMP_NUM_THREADS=x&quot; in the command line? Also, wouldn't the times for each loop reflect the speed of calculations, or am I wrong?</p> 
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://exciting.wikidot.com/forum/t-669603#post-1812295</guid>
				<title>Re: Ground state calculations for larger systems/organic systems</title>
				<link>http://exciting.wikidot.com/forum/t-669603/ground-state-calculations-for-larger-systems-organic-systems#post-1812295</link>
				<description></description>
				<pubDate>Wed, 10 Jul 2013 12:37:22 +0000</pubDate>
				<wikidot:authorName>Andris Gulans</wikidot:authorName>				<wikidot:authorUserId>1358339</wikidot:authorUserId>				<content:encoded>
					<![CDATA[
						 <p>There may be a couple of ways to speed up larger calculations.<br /> 1. Use multithreading (mentioned above). To do it, you have to compile exciting with the smp option, and when you run exciting do not forget to set the environment variable OMP_NUM_THREADS to an appropriate value. Even if does not scale very well, multithreading speeds up calculations. If you decide to make a comparison, please, do not pay any attention to the timings printed in the end of INFO.OUT.<br /> 2. If the number of states is small compared to the number of basis functions, it pays off to use arpack instead of lapack for the diagonalization. Just add the following to the groundstate section.<br /> &lt;solver type=&quot;Arpack&quot; epsarpack=&quot;1d-12&quot; /&gt;<br /> It may happen, however, that arpack exceeds the maximum number of iterations which is hardcoded. If this occurs, you will have to make a small change in src/src_iterative_solver/iterativearpacksequn.F90 . For instance, the line &quot;maxitr = 40 * nstfv&quot; can be changed to &quot;maxitr = 400 * nstfv&quot;.</p> <p>Apart from what I have described, it may pay off to run the calculation first with a smaller rgkmax value.</p> 
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://exciting.wikidot.com/forum/t-669603#post-1811845</guid>
				<title>(no title)</title>
				<link>http://exciting.wikidot.com/forum/t-669603/ground-state-calculations-for-larger-systems-organic-systems#post-1811845</link>
				<description></description>
				<pubDate>Tue, 09 Jul 2013 18:47:08 +0000</pubDate>
				<wikidot:authorName>smpat</wikidot:authorName>				<wikidot:authorUserId>1659882</wikidot:authorUserId>				<content:encoded>
					<![CDATA[
						 <p>Yeah, I've had nothing but trouble so far with parallelized exciting. Even with a large number of k-points, it always seems sluggish.</p> <p>I don't know of any other method outside of primcell either. That is one massive unit cell. Elk parallelizes over k-points, so I assume Exciting does as well. You could probably have a larger mesh if you're running in parallel, but I'm not an expert in this either.</p> 
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://exciting.wikidot.com/forum/t-669603#post-1811776</guid>
				<title>(no title)</title>
				<link>http://exciting.wikidot.com/forum/t-669603/ground-state-calculations-for-larger-systems-organic-systems#post-1811776</link>
				<description></description>
				<pubDate>Tue, 09 Jul 2013 17:03:18 +0000</pubDate>
				<wikidot:authorName>Robert</wikidot:authorName>								<content:encoded>
					<![CDATA[
						 <p>I believe I mentioned that I have not yet converged my system successfully, so no I have not tested different rgkmax values for convergence if that is what you are asking.</p> <p>Also, let me clarify that this is not a supercell, this is a unit cell with 48 atoms. It may be possible to reduce it further? If so, I am not aware how to attempt this outside specifying &quot;primcell=&quot;true&quot;&quot; in the structure section.</p> <p>As far as parallelizing, I have mpi parallelization set up and working in exciting; however, exciting parallelizes over k-points so with only 1 kpoint, I do not believe I can use mpi parallelization.</p> <p>I have not attempted excitingsmp. If I am honest, I do not know how smp parallelization works. If I took a guess, I would say it uses OpenMP which parallelizes over the cores available on a single processor? I am out of my expertise in this field.</p> <p>I was going to make a separate post inquiring on excitingsmp.</p> 
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://exciting.wikidot.com/forum/t-669603#post-1811754</guid>
				<title>Re: Ground state calculations for larger systems/organic systems</title>
				<link>http://exciting.wikidot.com/forum/t-669603/ground-state-calculations-for-larger-systems-organic-systems#post-1811754</link>
				<description></description>
				<pubDate>Tue, 09 Jul 2013 16:18:57 +0000</pubDate>
				<wikidot:authorName>smpat</wikidot:authorName>				<wikidot:authorUserId>1659882</wikidot:authorUserId>				<content:encoded>
					<![CDATA[
						 <p>These larger (&gt;48 atoms) systems can be a nightmare. I was suffering from the same painfully slow computation time as you are, and only recently parallized my Elk build, so now I can get an SCL for one of these systems with 4 x 4 x 2 mesh in under an hour. I'd suggest the same, but I have yet to build Exciting successfully on any computer but one, and it doesn't have a parallel structure.</p> <p>I agree on nempty. I know the rule of thumb is to multiply the value of nempty you would use in a unit cell by the new structure size. In other words, if you go to a 2x1x1 system, and you used nempty of 25 in your 1x1x1 system, use nempty of 50 in the new one.</p> <p>When I have linearization issues on Elk (which is fundamentally related to Exciting), it's usually because gmaxvr or rgkmax were too low. Have you converged rgkmax?</p> 
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://exciting.wikidot.com/forum/t-669603#post-1811742</guid>
				<title>Ground state calculations for larger systems/organic systems</title>
				<link>http://exciting.wikidot.com/forum/t-669603/ground-state-calculations-for-larger-systems-organic-systems#post-1811742</link>
				<description></description>
				<pubDate>Tue, 09 Jul 2013 15:46:42 +0000</pubDate>
				<wikidot:authorName>Robert</wikidot:authorName>								<content:encoded>
					<![CDATA[
						 <p>Hello,</p> <p>I am looking for suggestions on how to approach DFT calculations for larger systems (48-150 atoms/unit cell) and if any additional considerations are needed when dealing with organics.</p> <p>The overall aim is to model the energy-loss function of the materials, but first, a ground state calculation is of course needed.</p> <p>The simplest system I am working with has 48 atoms per unit cell (4 species) and is a form of Hydroxylapatite ( structure was found on the Crystallography Open Database and converted into an xml input via CIF2Cell. COD ID: 1010647 )</p> <p>The closest I am getting is with a 1x1x1 k-mesh. In 18 hours it has completed 3 iterations and the data suggests it is in fact converging, but may take several (maybe more than 20) more iterations to actually satisfy the default convergence criteria.</p> <p>The GSC info is here:<br /> &lt;groundstate swidth=&quot;0.01&quot; nempty=&quot;10&quot; xctype=&quot;GGAPBEsol&quot; ngridk=&quot;1&#160;1&#160;1&quot; lradstep=&quot;4&quot; gmaxvr=&quot;14.0&quot; lmaxvr=&quot;8&quot; rgkmax=&quot;7.0&quot; maxscl=&quot;30&quot;/&gt;</p> <p>I was considering increasing nempty to something closer to 50 or so since the number of valence states is 155.</p> <p>I did get a warning for SCL1 and SCL2<br /> &#8212;-<br /> Warning(occupy): smallest valence eigenvalue less thanminimum linearization energy : -5.164780185 -1.645800000<br /> for s.c. loop 1</p> <p>Warning(occupy): smallest valence eigenvalue less thanminimum linearization energy : -3.935421531 -1.645800000<br /> for s.c. loop 2<br /> &#8212;-</p> <p>Since loop 4 is in progress, that suggests loop 3 did not meet this condition.</p> <p>I hope I have provided adequate information here.</p> <p>Thank you,</p> <p>Robert</p> 
				 	]]>
				</content:encoded>							</item>
				</channel>
</rss>