<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="bbPress/1.0.2" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>k-Wave User Forum &#187; Topic: Ultrasound Simulation on HPC</title>
		<link>http://www.k-wave.org/forum/topic/ultrasound-simulation-on-hpc</link>
		<description>Support for the k-Wave MATLAB toolbox</description>
		<language>en-US</language>
		<pubDate>Tue, 12 May 2026 23:02:09 +0000</pubDate>
		<generator>http://bbpress.org/?v=1.0.2</generator>
		<textInput>
			<title><![CDATA[Search]]></title>
			<description><![CDATA[Search all topics from these forums.]]></description>
			<name>q</name>
			<link>http://www.k-wave.org/forum/search.php</link>
		</textInput>
		<atom:link href="http://www.k-wave.org/forum/rss/topic/ultrasound-simulation-on-hpc" rel="self" type="application/rss+xml" />

		<item>
			<title>Jiri Jaros on "Ultrasound Simulation on HPC"</title>
			<link>http://www.k-wave.org/forum/topic/ultrasound-simulation-on-hpc#post-7402</link>
			<pubDate>Fri, 17 Apr 2020 15:18:21 +0000</pubDate>
			<dc:creator>Jiri Jaros</dc:creator>
			<guid isPermaLink="false">7402@http://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;Hi Cyrill,&#60;br /&#62;
Unfortunately, you'll have to create an independent file for every simulation. The OMP code has no logic for the steering angle, this is left to Matlab.&#60;/p&#62;
&#60;p&#62;Best&#60;br /&#62;
Jiri
&#60;/p&#62;</description>
		</item>
		<item>
			<title>Cyrill on "Ultrasound Simulation on HPC"</title>
			<link>http://www.k-wave.org/forum/topic/ultrasound-simulation-on-hpc#post-7399</link>
			<pubDate>Wed, 15 Apr 2020 13:57:07 +0000</pubDate>
			<dc:creator>Cyrill</dc:creator>
			<guid isPermaLink="false">7399@http://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;Thanks Jiri for the detailed feedback, this makes for a very simple solution while maintaining a lot of node/thread allocation! This however brings me to a new challenge. As far as defining the input .h5 files for kspaceFirstOrder3D-OMP, the only variation between jobs is the transducer.steering_angle. Is it possible to parsed this parameter as and input flag or will I have to create individual (potentially very large) files for each angle? Or am I just approaching this problem wrong entirely?&#60;/p&#62;
&#60;p&#62;Best,&#60;/p&#62;
&#60;p&#62;Cyrill
&#60;/p&#62;</description>
		</item>
		<item>
			<title>Jiri Jaros on "Ultrasound Simulation on HPC"</title>
			<link>http://www.k-wave.org/forum/topic/ultrasound-simulation-on-hpc#post-7394</link>
			<pubDate>Tue, 14 Apr 2020 11:38:07 +0000</pubDate>
			<dc:creator>Jiri Jaros</dc:creator>
			<guid isPermaLink="false">7394@http://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;Hi Cyrill,&#60;br /&#62;
Take a look at SLURM job arrays.&#60;br /&#62;
&#60;a href=&#34;https://slurm.schedmd.com/job_array.html&#34; rel=&#34;nofollow&#34;&#62;https://slurm.schedmd.com/job_array.html&#60;/a&#62;&#60;/p&#62;
&#60;p&#62;You can specify there, I've got 512 scan lines (simulations), each needs one node and 12 threads. The job array system will automatically distribute the workload over all free nodes. &#60;/p&#62;
&#60;p&#62;Some scaling issues to consider (need some performance measurement, though):&#60;/p&#62;
&#60;p&#62;- Download k-Wave 1.3, it has several performance improvements.&#60;/p&#62;
&#60;p&#62;- You can specify the number of threads, a single simulation uses, by -t (e.g. -t 1 for a single thread), or the OMP_NUM_THREADS environmental variable.&#60;/p&#62;
&#60;p&#62;- Its an open question whether it is better to run multiple simulations on a single node or not. It depends on the simulation size, CPU specs, etc. Sometimes, it might be useful to use 4 threads per a simulation and run 3 simulations on a single node (considering you have a 12 core CPU). For small simulations, the best could be to run as many single-threaded simulations as there are cores, for big ones the run only a single simulation per CPU (NUMA domain - but make sure you use proper thread binding) or the whole node. Here you need to run a few experiments. &#60;/p&#62;
&#60;p&#62;Best&#60;br /&#62;
Jiri
&#60;/p&#62;</description>
		</item>
		<item>
			<title>Cyrill on "Ultrasound Simulation on HPC"</title>
			<link>http://www.k-wave.org/forum/topic/ultrasound-simulation-on-hpc#post-7384</link>
			<pubDate>Sat, 11 Apr 2020 12:51:47 +0000</pubDate>
			<dc:creator>Cyrill</dc:creator>
			<guid isPermaLink="false">7384@http://www.k-wave.org/forum/</guid>
			<description>&#60;p&#62;We have been successfully running sound-field simulations on an HPC using kspaceFirstOrder3D-OMP for some time now. Currently I am trying to implement an ultrasound imaging simulation and am looking for advice on how to best parallelize the approach. Based on my experience using the code so far, I noticed diminishing returns on parallelization across nodes and have thus maximized thread counts while restricting to a single node. For the imaging purposes I would have to now re-run the code for each scan-line i.e.:&#60;/p&#62;
&#60;p&#62;for (( i=1; i&#38;lt;=$NLines; i++ ))&#60;br /&#62;
mpirun -np $SLURM_NTASKS  kspaceFirstOrder3D-OMP ….&#60;/p&#62;
&#60;p&#62;This however would sequentially do one scan-line after the other not being able to capitalize on multiple nodes. I could alternatively create multiple jobs but this seems like a poor approach.&#60;br /&#62;
Question: How would I best go about parallelizing lines across nodes while parallelizing simulations across threads on a single node?&#60;/p&#62;
&#60;p&#62;Is adapting the source code to include and manage the MPI allocations my only option?&#60;br /&#62;
Any guidance is appreciated!&#60;/p&#62;
&#60;p&#62;Cheers, Cyrill
&#60;/p&#62;</description>
		</item>

	</channel>
</rss>
