<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://www.sharcnet.ca/help/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Razoumov</id>
		<title>Documentation - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://www.sharcnet.ca/help/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Razoumov"/>
		<link rel="alternate" type="text/html" href="https://www.sharcnet.ca/help/index.php/Special:Contributions/Razoumov"/>
		<updated>2026-05-24T00:03:49Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.25.2</generator>

	<entry>
		<id>https://www.sharcnet.ca/help/index.php?title=File:Slice-sn02-439.png&amp;diff=7069</id>
		<title>File:Slice-sn02-439.png</title>
		<link rel="alternate" type="text/html" href="https://www.sharcnet.ca/help/index.php?title=File:Slice-sn02-439.png&amp;diff=7069"/>
				<updated>2013-07-18T14:33:37Z</updated>
		
		<summary type="html">&lt;p&gt;Razoumov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Razoumov</name></author>	</entry>

	<entry>
		<id>https://www.sharcnet.ca/help/index.php?title=File:Hi-sn02-439.png&amp;diff=7068</id>
		<title>File:Hi-sn02-439.png</title>
		<link rel="alternate" type="text/html" href="https://www.sharcnet.ca/help/index.php?title=File:Hi-sn02-439.png&amp;diff=7068"/>
				<updated>2013-07-18T14:32:57Z</updated>
		
		<summary type="html">&lt;p&gt;Razoumov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Razoumov</name></author>	</entry>

	<entry>
		<id>https://www.sharcnet.ca/help/index.php?title=File:Sh1-zoom.png&amp;diff=7067</id>
		<title>File:Sh1-zoom.png</title>
		<link rel="alternate" type="text/html" href="https://www.sharcnet.ca/help/index.php?title=File:Sh1-zoom.png&amp;diff=7067"/>
				<updated>2013-07-18T14:32:09Z</updated>
		
		<summary type="html">&lt;p&gt;Razoumov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Razoumov</name></author>	</entry>

	<entry>
		<id>https://www.sharcnet.ca/help/index.php?title=File:L1-329.jpg&amp;diff=7066</id>
		<title>File:L1-329.jpg</title>
		<link rel="alternate" type="text/html" href="https://www.sharcnet.ca/help/index.php?title=File:L1-329.jpg&amp;diff=7066"/>
				<updated>2013-07-18T14:31:30Z</updated>
		
		<summary type="html">&lt;p&gt;Razoumov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Razoumov</name></author>	</entry>

	<entry>
		<id>https://www.sharcnet.ca/help/index.php?title=File:Frame160950215.png&amp;diff=7062</id>
		<title>File:Frame160950215.png</title>
		<link rel="alternate" type="text/html" href="https://www.sharcnet.ca/help/index.php?title=File:Frame160950215.png&amp;diff=7062"/>
				<updated>2013-07-18T14:14:00Z</updated>
		
		<summary type="html">&lt;p&gt;Razoumov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Razoumov</name></author>	</entry>

	<entry>
		<id>https://www.sharcnet.ca/help/index.php?title=File:Frame160950101.png&amp;diff=7061</id>
		<title>File:Frame160950101.png</title>
		<link rel="alternate" type="text/html" href="https://www.sharcnet.ca/help/index.php?title=File:Frame160950101.png&amp;diff=7061"/>
				<updated>2013-07-18T14:13:44Z</updated>
		
		<summary type="html">&lt;p&gt;Razoumov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Razoumov</name></author>	</entry>

	<entry>
		<id>https://www.sharcnet.ca/help/index.php?title=File:Frame160950000.png&amp;diff=7060</id>
		<title>File:Frame160950000.png</title>
		<link rel="alternate" type="text/html" href="https://www.sharcnet.ca/help/index.php?title=File:Frame160950000.png&amp;diff=7060"/>
				<updated>2013-07-18T14:13:27Z</updated>
		
		<summary type="html">&lt;p&gt;Razoumov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Razoumov</name></author>	</entry>

	<entry>
		<id>https://www.sharcnet.ca/help/index.php?title=File:Co-cristallize.jpg&amp;diff=7058</id>
		<title>File:Co-cristallize.jpg</title>
		<link rel="alternate" type="text/html" href="https://www.sharcnet.ca/help/index.php?title=File:Co-cristallize.jpg&amp;diff=7058"/>
				<updated>2013-07-18T14:08:02Z</updated>
		
		<summary type="html">&lt;p&gt;Razoumov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Razoumov</name></author>	</entry>

	<entry>
		<id>https://www.sharcnet.ca/help/index.php?title=File:CdTe1.jpg&amp;diff=7057</id>
		<title>File:CdTe1.jpg</title>
		<link rel="alternate" type="text/html" href="https://www.sharcnet.ca/help/index.php?title=File:CdTe1.jpg&amp;diff=7057"/>
				<updated>2013-07-18T14:07:16Z</updated>
		
		<summary type="html">&lt;p&gt;Razoumov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Razoumov</name></author>	</entry>

	<entry>
		<id>https://www.sharcnet.ca/help/index.php?title=File:AuPt1.jpg&amp;diff=7055</id>
		<title>File:AuPt1.jpg</title>
		<link rel="alternate" type="text/html" href="https://www.sharcnet.ca/help/index.php?title=File:AuPt1.jpg&amp;diff=7055"/>
				<updated>2013-07-18T13:53:42Z</updated>
		
		<summary type="html">&lt;p&gt;Razoumov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Razoumov</name></author>	</entry>

	<entry>
		<id>https://www.sharcnet.ca/help/index.php?title=GEANT4&amp;diff=6559</id>
		<title>GEANT4</title>
		<link rel="alternate" type="text/html" href="https://www.sharcnet.ca/help/index.php?title=GEANT4&amp;diff=6559"/>
				<updated>2013-05-22T20:29:23Z</updated>
		
		<summary type="html">&lt;p&gt;Razoumov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Software&lt;br /&gt;
|package_name=GEANT4&lt;br /&gt;
|package_description=Suite of programs for the simulation of the passage of particles through matter&lt;br /&gt;
|package_idnumber=59&lt;br /&gt;
}}&lt;br /&gt;
The latest version of geant4 (9.6.1) is installed on CentOS clusters under /opt/sharcnet/geant4/9.6.1/gcc .&lt;br /&gt;
&lt;br /&gt;
Geant4 comes with many examples useful for testing purposes. You can start with a simple test. For instance, here are the steps to compile and run an analysis example A01 in ~/testing directory inside your home directory:&lt;br /&gt;
&lt;br /&gt;
 module unload intel&lt;br /&gt;
 module load gcc/4.5.3 &lt;br /&gt;
 module load geant4/gcc/9.6.1&lt;br /&gt;
 export G4WORKDIR=~/testing&lt;br /&gt;
 cp -a /opt/sharcnet/geant4/9.6.1/gcc/examples/extended/analysis/A01 $G4WORKDIR/A01&lt;br /&gt;
 source /opt/sharcnet/geant4/9.6.1/gcc/share/Geant4-9.6.1/geant4make/geant4make.sh&lt;br /&gt;
 export CXX=g++&lt;br /&gt;
 cd $G4WORKDIR/A01 &lt;br /&gt;
 make&lt;br /&gt;
 sqsub -q serial -r 5m -o output.log ../bin/Linux-g++/A01app&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note that geant4 makefiles will omit the environment variable $LD_RUN_PATH which has a path to gcc libraries, instead encoding only its own path to the application library you are building ($G4WORKDIR/tmp/Linux-g++/A01app in our example), so we need to set LD_LIBRARY_PATH by hand before running geant4 as illustrated by the example above.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
o Geant4 Homepage&amp;lt;br&amp;gt;&lt;br /&gt;
http://geant4.web.cern.ch/geant4/&lt;br /&gt;
&lt;br /&gt;
o Online User Documentation&amp;lt;br&amp;gt;&lt;br /&gt;
http://geant4.web.cern.ch/geant4/support/userdocuments.shtml&lt;/div&gt;</summary>
		<author><name>Razoumov</name></author>	</entry>

	<entry>
		<id>https://www.sharcnet.ca/help/index.php?title=Talk:ILOGCPLEX&amp;diff=5191</id>
		<title>Talk:ILOGCPLEX</title>
		<link rel="alternate" type="text/html" href="https://www.sharcnet.ca/help/index.php?title=Talk:ILOGCPLEX&amp;diff=5191"/>
				<updated>2013-02-08T00:53:50Z</updated>
		
		<summary type="html">&lt;p&gt;Razoumov: Blanked the page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Razoumov</name></author>	</entry>

	<entry>
		<id>https://www.sharcnet.ca/help/index.php?title=GEANT4&amp;diff=4332</id>
		<title>GEANT4</title>
		<link rel="alternate" type="text/html" href="https://www.sharcnet.ca/help/index.php?title=GEANT4&amp;diff=4332"/>
				<updated>2012-10-26T21:50:19Z</updated>
		
		<summary type="html">&lt;p&gt;Razoumov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Software&lt;br /&gt;
|package_name=GEANT4&lt;br /&gt;
|package_description=Suite of programs for the simulation of the passage of particles through matter&lt;br /&gt;
|package_idnumber=59&lt;br /&gt;
}}&lt;br /&gt;
The latest version of geant4 (9.5) is installed on CentOS clusters under /opt/sharcnet/geant4/9.5/gcc .&lt;br /&gt;
&lt;br /&gt;
Geant4 comes with many examples useful for testing purposes. You can start with a simple test. For instance, here are the steps to compile and run an analysis example A01 in ~/testing directory inside your home directory:&lt;br /&gt;
&lt;br /&gt;
 module unload intel&lt;br /&gt;
 module load gcc/4.5.3 &lt;br /&gt;
 module load geant4/gcc/9.5&lt;br /&gt;
 export G4WORKDIR=~/testing&lt;br /&gt;
 cp -a /opt/sharcnet/geant4/9.5/gcc/examples/extended/analysis/A01 $G4WORKDIR/A01&lt;br /&gt;
 source /opt/sharcnet/geant4/9.5/gcc/share/Geant4-9.5.0/geant4make/geant4make.sh&lt;br /&gt;
 export CXX=g++&lt;br /&gt;
 cd $G4WORKDIR/A01 &lt;br /&gt;
 make # LD_RUN_PATH is ignored by this makefile, so need to set LD_LIBRARY_PATH&lt;br /&gt;
 export LD_LIBRARY_PATH=/opt/sharcnet/gcc/4.5.3/lib64:$LD_LIBRARY_PATH&lt;br /&gt;
 sqsub -q serial -r 5m -o output.log ../bin/Linux-g++/A01app&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note that geant4 makefiles will omit the environment variable $LD_RUN_PATH which has a path to gcc libraries, instead encoding only its own path to the application library you are building ($G4WORKDIR/tmp/Linux-g++/A01app in our example), so we need to set LD_LIBRARY_PATH by hand before running geant4 as illustrated by the example above.&lt;/div&gt;</summary>
		<author><name>Razoumov</name></author>	</entry>

	<entry>
		<id>https://www.sharcnet.ca/help/index.php?title=GEANT4&amp;diff=4331</id>
		<title>GEANT4</title>
		<link rel="alternate" type="text/html" href="https://www.sharcnet.ca/help/index.php?title=GEANT4&amp;diff=4331"/>
				<updated>2012-10-26T21:46:36Z</updated>
		
		<summary type="html">&lt;p&gt;Razoumov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Software&lt;br /&gt;
|package_name=GEANT4&lt;br /&gt;
|package_description=Suite of programs for the simulation of the passage of particles through matter&lt;br /&gt;
|package_idnumber=59&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
The latest version of geant4 (9.5) is installed on CentOS clusters under /opt/sharcnet/geant4/9.5/gcc . We also have the older version 4.9.1 installed on some systems, but it is no longer updated, so for the newest geant4 please log in to the CentOS clusters.&lt;br /&gt;
&lt;br /&gt;
Geant4 comes with many examples useful for testing purposes. You can start with a simple test. For instance, here are the steps to compile and run an analysis example A01 in ~/testing directory inside your home directory:&lt;br /&gt;
&lt;br /&gt;
 module unload intel/11.0.083&lt;br /&gt;
 module load gcc/4.5.3 &lt;br /&gt;
 module load geant4/gcc/9.5&lt;br /&gt;
 export G4WORKDIR=~/testing&lt;br /&gt;
 cp -a /opt/sharcnet/geant4/9.5/gcc/examples/extended/analysis/A01 $G4WORKDIR/A01&lt;br /&gt;
 source /opt/sharcnet/geant4/9.5/gcc/share/Geant4-9.5.0/geant4make/geant4make.sh&lt;br /&gt;
 export CXX=g++&lt;br /&gt;
 cd $G4WORKDIR/A01 &lt;br /&gt;
 make # LD_RUN_PATH is ignored by this makefile, so need to set LD_LIBRARY_PATH&lt;br /&gt;
 export LD_LIBRARY_PATH=/opt/sharcnet/gcc/4.5.3/lib64:$LD_LIBRARY_PATH&lt;br /&gt;
 sqsub -q serial -r 5m -o output.log ../bin/Linux-g++/A01app&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note that geant4 makefiles will omit the environment variable $LD_RUN_PATH which has a path to gcc libraries, instead encoding only its own path to the application library you are building ($G4WORKDIR/tmp/Linux-g++/A01app in our example), so we need to set LD_LIBRARY_PATH by hand before running geant4 as illustrated by the example above.&lt;/div&gt;</summary>
		<author><name>Razoumov</name></author>	</entry>

	<entry>
		<id>https://www.sharcnet.ca/help/index.php?title=File:Volume1.png&amp;diff=2683</id>
		<title>File:Volume1.png</title>
		<link rel="alternate" type="text/html" href="https://www.sharcnet.ca/help/index.php?title=File:Volume1.png&amp;diff=2683"/>
				<updated>2011-03-14T23:27:36Z</updated>
		
		<summary type="html">&lt;p&gt;Razoumov: example of ParaView visualization&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;example of ParaView visualization&lt;/div&gt;</summary>
		<author><name>Razoumov</name></author>	</entry>

	<entry>
		<id>https://www.sharcnet.ca/help/index.php?title=File:Volume.png&amp;diff=2463</id>
		<title>File:Volume.png</title>
		<link rel="alternate" type="text/html" href="https://www.sharcnet.ca/help/index.php?title=File:Volume.png&amp;diff=2463"/>
				<updated>2010-12-01T22:33:31Z</updated>
		
		<summary type="html">&lt;p&gt;Razoumov: uploaded a new version of &amp;quot;File:Volume.png&amp;quot;: NetCDF sample data for ParaView&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;paraview window with simple visualization&lt;/div&gt;</summary>
		<author><name>Razoumov</name></author>	</entry>

	<entry>
		<id>https://www.sharcnet.ca/help/index.php?title=File:Volume.png&amp;diff=2449</id>
		<title>File:Volume.png</title>
		<link rel="alternate" type="text/html" href="https://www.sharcnet.ca/help/index.php?title=File:Volume.png&amp;diff=2449"/>
				<updated>2010-12-01T16:14:25Z</updated>
		
		<summary type="html">&lt;p&gt;Razoumov: paraview window with simple visualization&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;paraview window with simple visualization&lt;/div&gt;</summary>
		<author><name>Razoumov</name></author>	</entry>

	<entry>
		<id>https://www.sharcnet.ca/help/index.php?title=User:Ppomorsk/Toward_Exascale_Simulations_of_3D_Radiative_Transfer_for_Cloudy_Atmospheres&amp;diff=2319</id>
		<title>User:Ppomorsk/Toward Exascale Simulations of 3D Radiative Transfer for Cloudy Atmospheres</title>
		<link rel="alternate" type="text/html" href="https://www.sharcnet.ca/help/index.php?title=User:Ppomorsk/Toward_Exascale_Simulations_of_3D_Radiative_Transfer_for_Cloudy_Atmospheres&amp;diff=2319"/>
				<updated>2010-10-12T17:12:42Z</updated>
		
		<summary type="html">&lt;p&gt;Razoumov: /* Safe physics assumptions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Project Title: '''Toward Exascale Simulations of 3D Radiative Transfer for Cloudy Atmospheres '''&lt;br /&gt;
&lt;br /&gt;
Project originators: &lt;br /&gt;
*Howard Barker, Environment Canada&lt;br /&gt;
*Jacon Cole, Environment Canada&lt;br /&gt;
*Philip Austin, UBC&lt;br /&gt;
&lt;br /&gt;
SHARCNET programming support:&lt;br /&gt;
*Pawel Pomorski &lt;br /&gt;
*Alex Razoumov&lt;br /&gt;
&lt;br /&gt;
The goal of this project is to modify an existing radiative transfer code (one of the components of climate and weather modelling used by the EC group) to make it fully parallel. The code uses a Monte Carlo approach to inject photons into the domain studied and compute their propagation.&lt;br /&gt;
&lt;br /&gt;
The approach of the initial code is to supply each processor with the entire spatial domain and inject N photons per each parallel processor.  This approach does result in a parallel speedup but suffers from memory limitations.  Thus the first improvement to the code will be to decompose the spatial domain into subdomains which will be assigned to individual processors.  This will require adding code to handle photons transferring between domains as they cross the boundary.  &lt;br /&gt;
&lt;br /&gt;
Once that is done, the second stage of the project will be to improve the above approach to ensure good load balancing between processors.&lt;br /&gt;
&lt;br /&gt;
==Safe physics assumptions==&lt;br /&gt;
&lt;br /&gt;
# Radiation propagates at the finite speed &amp;quot;c&amp;quot;, so strictly speaking the equation of radiative transfer should include a time-dependent advection term (differential transfer equation) or the &amp;quot;retarded&amp;quot; energy (integral transfer equation). Our assumption is that &amp;quot;c&amp;quot; is so large that all changes in the radiation field can be assumed instantaneous, and those &amp;quot;c&amp;quot;-dependent terms can be dropped.&lt;br /&gt;
# The conservation equations of radiation hydrodynamics describe conservation of mass, momentum, energy. Ideally, they should be solved in one (perhaps, implicit) update. Operator-splitting them into two steps (hydrodynamics and transfer) is good enough for this problem, but it's worth keeping in mind that it's an approximation.&lt;br /&gt;
&lt;br /&gt;
==Approximations that we should worry about==&lt;br /&gt;
&lt;br /&gt;
# It is assumed that all variations in matter properties caused by radiation -- heating and the resulting changes in opacity/emissivity -- are not fast, i.e. they happen on a fluid flow timescale (or shorter). Therefore, these changes can be computed in the hydrodynamical update. I suspect in the cloud problem many radiation-driven changes happen on a timescale dictated by microphysics of radiation-matter interaction that is often very short, e.g., a cloud can be heated or evaporated by radiation before it can adjust hydrodynamically. This means that one needs to do radiative transfer/microphysics updates continuously throughout the hydrodynamical timestep, as opposed to doing it once per timestep. There are two methods: doing subcycling (transfer-microphysics-transfer-microphysics-...), or doing a simultaneous implicit solve.&lt;br /&gt;
# With Monte Carlo transfer the stochastic error goes down as 1/sqrt(numberOfPhotons), in other words, shooting 1000 times more photons will only lower the errors by a factor of ~30. In order to have a solution that is accurate to 8-9 significant digits, how many photons one would need to propagate at each timestep, 1e20? This is why proper discretization of the transfer equation in all dimensions (3 spatial coordinates, two angles, frequency) is vastly superior to Monte Carlo for error control. There are many methods -- ray tracing, direct Boltzmann solver, and various approximations (variable Eddington tensors, moment-limited approximations) -- but they clearly go well beyond the scope of this programming project. As a sanity check with Monte Carlo, we should be aware of the solution accuracy, e.g. how many photons do we need to launch to have 1% (or 1e-4, 1e-6) accuracy in the heating rates in each cell. Consequently, this number of photons will influence not only the CPU time, but also the amount of communication between the processors/nodes. While pursuing decent accuracy on larger grids, the problem can be quickly dominated by passing photon buffers between processors and the associated MPI bottlenecks.&lt;br /&gt;
# Domain decomposition of radiative transfer might present its own problems. For example, if there are any radiation-driven fronts (I am thinking about ionization fronts in astrophysics, but coupling radiation to hydro might give rise to its own instabilities and fronts propagating at finite speeds), the order in which photons are passed between processors may become important. For example, the domain on the left may or may not have some important instability that will affect transfer in the domain on the right, on the timescale faster than the fluid flow. Then doing transfer in the domain on the right may be a waste of CPU time, until we have the solution from the domain on the left. Couple that with the fact that there is no left and right, but two angles (theta, phi) describing the direction of photon propagation, and you'll see how complex this problem can become.&lt;/div&gt;</summary>
		<author><name>Razoumov</name></author>	</entry>

	<entry>
		<id>https://www.sharcnet.ca/help/index.php?title=User:Ppomorsk/Toward_Exascale_Simulations_of_3D_Radiative_Transfer_for_Cloudy_Atmospheres&amp;diff=2318</id>
		<title>User:Ppomorsk/Toward Exascale Simulations of 3D Radiative Transfer for Cloudy Atmospheres</title>
		<link rel="alternate" type="text/html" href="https://www.sharcnet.ca/help/index.php?title=User:Ppomorsk/Toward_Exascale_Simulations_of_3D_Radiative_Transfer_for_Cloudy_Atmospheres&amp;diff=2318"/>
				<updated>2010-10-12T17:12:02Z</updated>
		
		<summary type="html">&lt;p&gt;Razoumov: /* Safe physics assumptions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Project Title: '''Toward Exascale Simulations of 3D Radiative Transfer for Cloudy Atmospheres '''&lt;br /&gt;
&lt;br /&gt;
Project originators: &lt;br /&gt;
*Howard Barker, Environment Canada&lt;br /&gt;
*Jacon Cole, Environment Canada&lt;br /&gt;
*Philip Austin, UBC&lt;br /&gt;
&lt;br /&gt;
SHARCNET programming support:&lt;br /&gt;
*Pawel Pomorski &lt;br /&gt;
*Alex Razoumov&lt;br /&gt;
&lt;br /&gt;
The goal of this project is to modify an existing radiative transfer code (one of the components of climate and weather modelling used by the EC group) to make it fully parallel. The code uses a Monte Carlo approach to inject photons into the domain studied and compute their propagation.&lt;br /&gt;
&lt;br /&gt;
The approach of the initial code is to supply each processor with the entire spatial domain and inject N photons per each parallel processor.  This approach does result in a parallel speedup but suffers from memory limitations.  Thus the first improvement to the code will be to decompose the spatial domain into subdomains which will be assigned to individual processors.  This will require adding code to handle photons transferring between domains as they cross the boundary.  &lt;br /&gt;
&lt;br /&gt;
Once that is done, the second stage of the project will be to improve the above approach to ensure good load balancing between processors.&lt;br /&gt;
&lt;br /&gt;
==Safe physics assumptions==&lt;br /&gt;
&lt;br /&gt;
# Radiation propagates at the finite speed &amp;quot;c&amp;quot;, so strictly speaking the equation of radiative transfer should include a time-dependent advection term (differential transfer equation) or the &amp;quot;retarded&amp;quot; energy (integral transfer equation). The working (and pretty safe) assumption is that &amp;quot;c&amp;quot; is so large that all changes in the radiation field can be assumed instantaneous, and those &amp;quot;c&amp;quot;-dependent terms can be dropped.&lt;br /&gt;
# The conservation equations of radiation hydrodynamics describe conservation of mass, momentum, energy. Ideally, they should be solved in one (perhaps, implicit) update. Operator-splitting them into two steps (hydrodynamics and transfer) is good enough for this problem, but it's worth keeping in mind that it's an approximation.&lt;br /&gt;
&lt;br /&gt;
==Approximations that we should worry about==&lt;br /&gt;
&lt;br /&gt;
# It is assumed that all variations in matter properties caused by radiation -- heating and the resulting changes in opacity/emissivity -- are not fast, i.e. they happen on a fluid flow timescale (or shorter). Therefore, these changes can be computed in the hydrodynamical update. I suspect in the cloud problem many radiation-driven changes happen on a timescale dictated by microphysics of radiation-matter interaction that is often very short, e.g., a cloud can be heated or evaporated by radiation before it can adjust hydrodynamically. This means that one needs to do radiative transfer/microphysics updates continuously throughout the hydrodynamical timestep, as opposed to doing it once per timestep. There are two methods: doing subcycling (transfer-microphysics-transfer-microphysics-...), or doing a simultaneous implicit solve.&lt;br /&gt;
# With Monte Carlo transfer the stochastic error goes down as 1/sqrt(numberOfPhotons), in other words, shooting 1000 times more photons will only lower the errors by a factor of ~30. In order to have a solution that is accurate to 8-9 significant digits, how many photons one would need to propagate at each timestep, 1e20? This is why proper discretization of the transfer equation in all dimensions (3 spatial coordinates, two angles, frequency) is vastly superior to Monte Carlo for error control. There are many methods -- ray tracing, direct Boltzmann solver, and various approximations (variable Eddington tensors, moment-limited approximations) -- but they clearly go well beyond the scope of this programming project. As a sanity check with Monte Carlo, we should be aware of the solution accuracy, e.g. how many photons do we need to launch to have 1% (or 1e-4, 1e-6) accuracy in the heating rates in each cell. Consequently, this number of photons will influence not only the CPU time, but also the amount of communication between the processors/nodes. While pursuing decent accuracy on larger grids, the problem can be quickly dominated by passing photon buffers between processors and the associated MPI bottlenecks.&lt;br /&gt;
# Domain decomposition of radiative transfer might present its own problems. For example, if there are any radiation-driven fronts (I am thinking about ionization fronts in astrophysics, but coupling radiation to hydro might give rise to its own instabilities and fronts propagating at finite speeds), the order in which photons are passed between processors may become important. For example, the domain on the left may or may not have some important instability that will affect transfer in the domain on the right, on the timescale faster than the fluid flow. Then doing transfer in the domain on the right may be a waste of CPU time, until we have the solution from the domain on the left. Couple that with the fact that there is no left and right, but two angles (theta, phi) describing the direction of photon propagation, and you'll see how complex this problem can become.&lt;/div&gt;</summary>
		<author><name>Razoumov</name></author>	</entry>

	<entry>
		<id>https://www.sharcnet.ca/help/index.php?title=User:Ppomorsk/Toward_Exascale_Simulations_of_3D_Radiative_Transfer_for_Cloudy_Atmospheres&amp;diff=2317</id>
		<title>User:Ppomorsk/Toward Exascale Simulations of 3D Radiative Transfer for Cloudy Atmospheres</title>
		<link rel="alternate" type="text/html" href="https://www.sharcnet.ca/help/index.php?title=User:Ppomorsk/Toward_Exascale_Simulations_of_3D_Radiative_Transfer_for_Cloudy_Atmospheres&amp;diff=2317"/>
				<updated>2010-10-12T17:09:54Z</updated>
		
		<summary type="html">&lt;p&gt;Razoumov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Project Title: '''Toward Exascale Simulations of 3D Radiative Transfer for Cloudy Atmospheres '''&lt;br /&gt;
&lt;br /&gt;
Project originators: &lt;br /&gt;
*Howard Barker, Environment Canada&lt;br /&gt;
*Jacon Cole, Environment Canada&lt;br /&gt;
*Philip Austin, UBC&lt;br /&gt;
&lt;br /&gt;
SHARCNET programming support:&lt;br /&gt;
*Pawel Pomorski &lt;br /&gt;
*Alex Razoumov&lt;br /&gt;
&lt;br /&gt;
The goal of this project is to modify an existing radiative transfer code (one of the components of climate and weather modelling used by the EC group) to make it fully parallel. The code uses a Monte Carlo approach to inject photons into the domain studied and compute their propagation.&lt;br /&gt;
&lt;br /&gt;
The approach of the initial code is to supply each processor with the entire spatial domain and inject N photons per each parallel processor.  This approach does result in a parallel speedup but suffers from memory limitations.  Thus the first improvement to the code will be to decompose the spatial domain into subdomains which will be assigned to individual processors.  This will require adding code to handle photons transferring between domains as they cross the boundary.  &lt;br /&gt;
&lt;br /&gt;
Once that is done, the second stage of the project will be to improve the above approach to ensure good load balancing between processors.&lt;br /&gt;
&lt;br /&gt;
==Safe physics assumptions==&lt;br /&gt;
&lt;br /&gt;
# Radiation propagates at a finite speed &amp;quot;c&amp;quot;, so strictly speaking the equation of radiative transfer should include a time-dependent advection term (differential transfer equation) or the &amp;quot;retarded&amp;quot; energy (integral transfer equation). The working (and pretty safe) assumption is that &amp;quot;c&amp;quot; is so large that all changes in the radiation field can be assumed instantaneous, and those &amp;quot;c&amp;quot;-dependent terms can be dropped.&lt;br /&gt;
# The conservation equations of radiation hydrodynamics describe conservation of mass, momentum, energy. Ideally, they should be solved in one (perhaps, implicit) update. Operator-splitting them into two steps (hydrodynamics and transfer) is good enough for this problem, but it's worth keeping in mind that it's an approximation.&lt;br /&gt;
&lt;br /&gt;
==Approximations that we should worry about==&lt;br /&gt;
&lt;br /&gt;
# It is assumed that all variations in matter properties caused by radiation -- heating and the resulting changes in opacity/emissivity -- are not fast, i.e. they happen on a fluid flow timescale (or shorter). Therefore, these changes can be computed in the hydrodynamical update. I suspect in the cloud problem many radiation-driven changes happen on a timescale dictated by microphysics of radiation-matter interaction that is often very short, e.g., a cloud can be heated or evaporated by radiation before it can adjust hydrodynamically. This means that one needs to do radiative transfer/microphysics updates continuously throughout the hydrodynamical timestep, as opposed to doing it once per timestep. There are two methods: doing subcycling (transfer-microphysics-transfer-microphysics-...), or doing a simultaneous implicit solve.&lt;br /&gt;
# With Monte Carlo transfer the stochastic error goes down as 1/sqrt(numberOfPhotons), in other words, shooting 1000 times more photons will only lower the errors by a factor of ~30. In order to have a solution that is accurate to 8-9 significant digits, how many photons one would need to propagate at each timestep, 1e20? This is why proper discretization of the transfer equation in all dimensions (3 spatial coordinates, two angles, frequency) is vastly superior to Monte Carlo for error control. There are many methods -- ray tracing, direct Boltzmann solver, and various approximations (variable Eddington tensors, moment-limited approximations) -- but they clearly go well beyond the scope of this programming project. As a sanity check with Monte Carlo, we should be aware of the solution accuracy, e.g. how many photons do we need to launch to have 1% (or 1e-4, 1e-6) accuracy in the heating rates in each cell. Consequently, this number of photons will influence not only the CPU time, but also the amount of communication between the processors/nodes. While pursuing decent accuracy on larger grids, the problem can be quickly dominated by passing photon buffers between processors and the associated MPI bottlenecks.&lt;br /&gt;
# Domain decomposition of radiative transfer might present its own problems. For example, if there are any radiation-driven fronts (I am thinking about ionization fronts in astrophysics, but coupling radiation to hydro might give rise to its own instabilities and fronts propagating at finite speeds), the order in which photons are passed between processors may become important. For example, the domain on the left may or may not have some important instability that will affect transfer in the domain on the right, on the timescale faster than the fluid flow. Then doing transfer in the domain on the right may be a waste of CPU time, until we have the solution from the domain on the left. Couple that with the fact that there is no left and right, but two angles (theta, phi) describing the direction of photon propagation, and you'll see how complex this problem can become.&lt;/div&gt;</summary>
		<author><name>Razoumov</name></author>	</entry>

	<entry>
		<id>https://www.sharcnet.ca/help/index.php?title=User:Ppomorsk/Toward_Exascale_Simulations_of_3D_Radiative_Transfer_for_Cloudy_Atmospheres&amp;diff=2316</id>
		<title>User:Ppomorsk/Toward Exascale Simulations of 3D Radiative Transfer for Cloudy Atmospheres</title>
		<link rel="alternate" type="text/html" href="https://www.sharcnet.ca/help/index.php?title=User:Ppomorsk/Toward_Exascale_Simulations_of_3D_Radiative_Transfer_for_Cloudy_Atmospheres&amp;diff=2316"/>
				<updated>2010-10-12T17:09:14Z</updated>
		
		<summary type="html">&lt;p&gt;Razoumov: /* Approximations that are not so clear */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Project Title: '''Toward Exascale Simulations of 3D Radiative Transfer for Cloudy Atmospheres '''&lt;br /&gt;
&lt;br /&gt;
Project originators: &lt;br /&gt;
*Howard Barker, Environment Canada&lt;br /&gt;
*Jacon Cole, Environment Canada&lt;br /&gt;
*Philip Austin, UBC&lt;br /&gt;
&lt;br /&gt;
SHARCNET programming support:&lt;br /&gt;
*Pawel Pomorski &lt;br /&gt;
*Alex Razoumov&lt;br /&gt;
&lt;br /&gt;
The goal of this project is to modify an existing radiative transfer code (one of the components of climate and weather modelling used by the EC group) to make it fully parallel. The code uses a Monte Carlo approach to inject photons into the domain studied and compute their propagation.&lt;br /&gt;
&lt;br /&gt;
The approach of the initial code is to supply each processor with the entire spatial domain and inject N photons per each parallel processor.  This approach does result in a parallel speedup but suffers from memory limitations.  Thus the first improvement to the code will be to decompose the spatial domain into subdomains which will be assigned to individual processors.  This will require adding code to handle photons transferring between domains as they cross the boundary.  &lt;br /&gt;
&lt;br /&gt;
Once that is done, the second stage of the project will be to improve the above approach to ensure good load balancing between processors.&lt;br /&gt;
&lt;br /&gt;
==Physics assumptions that we don't need to worry about==&lt;br /&gt;
&lt;br /&gt;
# Radiation propagates at a finite speed &amp;quot;c&amp;quot;, so strictly speaking the equation of radiative transfer should include a time-dependent advection term (differential transfer equation) or the &amp;quot;retarded&amp;quot; energy (integral transfer equation). The working (and pretty safe) assumption is that &amp;quot;c&amp;quot; is so large that all changes in the radiation field can be assumed instantaneous, and those &amp;quot;c&amp;quot;-dependent terms can be dropped.&lt;br /&gt;
# The conservation equations of radiation hydrodynamics describe conservation of mass, momentum, energy. Ideally, they should be solved in one (perhaps, implicit) update. Operator-splitting them into two steps (hydrodynamics and transfer) is good enough for this problem, but it's worth keeping in mind that it's an approximation.&lt;br /&gt;
&lt;br /&gt;
==Approximations that are not so clear==&lt;br /&gt;
&lt;br /&gt;
# It is assumed that all variations in matter properties caused by radiation -- heating and the resulting changes in opacity/emissivity -- are not fast, i.e. they happen on a fluid flow timescale (or shorter). Therefore, these changes can be computed in the hydrodynamical update. I suspect in the cloud problem many radiation-driven changes happen on a timescale dictated by microphysics of radiation-matter interaction that is often very short, e.g., a cloud can be heated or evaporated by radiation before it can adjust hydrodynamically. This means that one needs to do radiative transfer/microphysics updates continuously throughout the hydrodynamical timestep, as opposed to doing it once per timestep. There are two methods: doing subcycling (transfer-microphysics-transfer-microphysics-...), or doing a simultaneous implicit solve.&lt;br /&gt;
# With Monte Carlo transfer the stochastic error goes down as 1/sqrt(numberOfPhotons), in other words, shooting 1000 times more photons will only lower the errors by a factor of ~30. In order to have a solution that is accurate to 8-9 significant digits, how many photons one would need to propagate at each timestep, 1e20? This is why proper discretization of the transfer equation in all dimensions (3 spatial coordinates, two angles, frequency) is vastly superior to Monte Carlo for error control. There are many methods -- ray tracing, direct Boltzmann solver, and various approximations (variable Eddington tensors, moment-limited approximations) -- but they clearly go well beyond the scope of this programming project. As a sanity check with Monte Carlo, we should be aware of the solution accuracy, e.g. how many photons do we need to launch to have 1% (or 1e-4, 1e-6) accuracy in the heating rates in each cell. Consequently, this number of photons will influence not only the CPU time, but also the amount of communication between the processors/nodes. While pursuing decent accuracy on larger grids, the problem can be quickly dominated by passing photon buffers between processors and the associated MPI bottlenecks.&lt;br /&gt;
# Domain decomposition of radiative transfer might present its own problems. For example, if there are any radiation-driven fronts (I am thinking about ionization fronts in astrophysics, but coupling radiation to hydro might give rise to its own instabilities and fronts propagating at finite speeds), the order in which photons are passed between processors may become important. For example, the domain on the left may or may not have some important instability that will affect transfer in the domain on the right, on the timescale faster than the fluid flow. Then doing transfer in the domain on the right may be a waste of CPU time, until we have the solution from the domain on the left. Couple that with the fact that there is no left and right, but two angles (theta, phi) describing the direction of photon propagation, and you'll see how complex this problem can become.&lt;/div&gt;</summary>
		<author><name>Razoumov</name></author>	</entry>

	<entry>
		<id>https://www.sharcnet.ca/help/index.php?title=User:Ppomorsk/Toward_Exascale_Simulations_of_3D_Radiative_Transfer_for_Cloudy_Atmospheres&amp;diff=2315</id>
		<title>User:Ppomorsk/Toward Exascale Simulations of 3D Radiative Transfer for Cloudy Atmospheres</title>
		<link rel="alternate" type="text/html" href="https://www.sharcnet.ca/help/index.php?title=User:Ppomorsk/Toward_Exascale_Simulations_of_3D_Radiative_Transfer_for_Cloudy_Atmospheres&amp;diff=2315"/>
				<updated>2010-10-12T16:49:28Z</updated>
		
		<summary type="html">&lt;p&gt;Razoumov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Project Title: '''Toward Exascale Simulations of 3D Radiative Transfer for Cloudy Atmospheres '''&lt;br /&gt;
&lt;br /&gt;
Project originators: &lt;br /&gt;
*Howard Barker, Environment Canada&lt;br /&gt;
*Jacon Cole, Environment Canada&lt;br /&gt;
*Philip Austin, UBC&lt;br /&gt;
&lt;br /&gt;
SHARCNET programming support:&lt;br /&gt;
*Pawel Pomorski &lt;br /&gt;
*Alex Razoumov&lt;br /&gt;
&lt;br /&gt;
The goal of this project is to modify an existing radiative transfer code (one of the components of climate and weather modelling used by the EC group) to make it fully parallel. The code uses a Monte Carlo approach to inject photons into the domain studied and compute their propagation.&lt;br /&gt;
&lt;br /&gt;
The approach of the initial code is to supply each processor with the entire spatial domain and inject N photons per each parallel processor.  This approach does result in a parallel speedup but suffers from memory limitations.  Thus the first improvement to the code will be to decompose the spatial domain into subdomains which will be assigned to individual processors.  This will require adding code to handle photons transferring between domains as they cross the boundary.  &lt;br /&gt;
&lt;br /&gt;
Once that is done, the second stage of the project will be to improve the above approach to ensure good load balancing between processors.&lt;br /&gt;
&lt;br /&gt;
==Physics assumptions that we don't need to worry about==&lt;br /&gt;
&lt;br /&gt;
# Radiation propagates at a finite speed &amp;quot;c&amp;quot;, so strictly speaking the equation of radiative transfer should include a time-dependent advection term (differential transfer equation) or the &amp;quot;retarded&amp;quot; energy (integral transfer equation). The working (and pretty safe) assumption is that &amp;quot;c&amp;quot; is so large that all changes in the radiation field can be assumed instantaneous, and those &amp;quot;c&amp;quot;-dependent terms can be dropped.&lt;br /&gt;
# The conservation equations of radiation hydrodynamics describe conservation of mass, momentum, energy. Ideally, they should be solved in one (perhaps, implicit) update. Operator-splitting them into two steps (hydrodynamics and transfer) is good enough for this problem, but it's worth keeping in mind that it's an approximation.&lt;br /&gt;
&lt;br /&gt;
==Approximations that are not so clear==&lt;br /&gt;
&lt;br /&gt;
# It is assumed that all variations in matter properties caused by radiation -- heating and the resulting changes in opacity/emissivity -- are not fast, i.e. they happen on a fluid flow timescale (or shorter). Therefore, these changes can be computed in the hydrodynamical update. I suspect in the cloud problem many radiation-driven changes happen on a timescale dictated by microphysics of radiation-matter interaction that is often very short, e.g., a cloud can be heated or evaporated by radiation before it can adjust hydrodynamically. This means that one needs to do radiative transfer/microphysics updates continuously throughout the hydrodynamical timestep, as opposed to doing it once per timestep. There are two methods: doing subcycling (transfer-microphysics-transfer-microphysics-...), or doing a simultaneous implicit solve.&lt;br /&gt;
# With Monte Carlo transfer the stochastic error goes down as 1/sqrt(numberOfPhotons), in other words, shooting 1000 times more photons will only lower the errors by a factor of ~30. In order to have a solution that is accurate to 8-9 significant digits, how many photons one would need to propagate at each timestep, 1e20? This is why proper discretization of the transfer equation in all dimensions (3 spatial coordinates, two angles, frequency) is vastly superior to Monte Carlo for error control. There are many methods -- ray tracing, direct Boltzmann solver, and various approximations (variable Eddington tensors, moment-limited approximations) -- but they clearly go well beyond the scope of this programming project. As a sanity check with Monte Carlo, we should be aware of the solution accuracy, e.g. how many photons do we need to launch to have 1% (or 1e-4, 1e-6) accuracy in the heating rates in each cell. Consequently, this number of photons will influence not only the CPU time, but also the amount of communication between the processors/nodes. While pursuing decent accuracy on larger grids, the problem can be quickly dominated by passing photon buffers from processor to processor and the associated MPI bottlenecks.&lt;/div&gt;</summary>
		<author><name>Razoumov</name></author>	</entry>

	<entry>
		<id>https://www.sharcnet.ca/help/index.php?title=User:Ppomorsk/Toward_Exascale_Simulations_of_3D_Radiative_Transfer_for_Cloudy_Atmospheres&amp;diff=2314</id>
		<title>User:Ppomorsk/Toward Exascale Simulations of 3D Radiative Transfer for Cloudy Atmospheres</title>
		<link rel="alternate" type="text/html" href="https://www.sharcnet.ca/help/index.php?title=User:Ppomorsk/Toward_Exascale_Simulations_of_3D_Radiative_Transfer_for_Cloudy_Atmospheres&amp;diff=2314"/>
				<updated>2010-10-12T16:29:54Z</updated>
		
		<summary type="html">&lt;p&gt;Razoumov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Project Title: '''Toward Exascale Simulations of 3D Radiative Transfer for Cloudy Atmospheres '''&lt;br /&gt;
&lt;br /&gt;
Project originators: &lt;br /&gt;
*Howard Barker, Environment Canada&lt;br /&gt;
*Jacon Cole, Environment Canada&lt;br /&gt;
*Philip Austin, UBC&lt;br /&gt;
&lt;br /&gt;
SHARCNET programming support:&lt;br /&gt;
*Pawel Pomorski &lt;br /&gt;
*Alex Razoumov&lt;br /&gt;
&lt;br /&gt;
The goal of this project is to modify an existing radiative transfer code (one of the components of climate and weather modelling used by the EC group) to make it fully parallel. The code uses a Monte Carlo approach to inject photons into the domain studied and compute their propagation.&lt;br /&gt;
&lt;br /&gt;
The approach of the initial code is to supply each processor with the entire spatial domain and inject N photons per each parallel processor.  This approach does result in a parallel speedup but suffers from memory limitations.  Thus the first improvement to the code will be to decompose the spatial domain into subdomains which will be assigned to individual processors.  This will require adding code to handle photons transferring between domains as they cross the boundary.  &lt;br /&gt;
&lt;br /&gt;
Once that is done, the second stage of the project will be to improve the above approach to ensure good load balancing between processors.&lt;br /&gt;
&lt;br /&gt;
==Physics assumptions that we don't need to worry about==&lt;br /&gt;
&lt;br /&gt;
# Radiation propagates at a finite speed &amp;quot;c&amp;quot;, so strictly speaking the equation of radiative transfer should include a time-dependent advection term (differential transfer equation) or the &amp;quot;retarded&amp;quot; energy (integral transfer equation). The working (and pretty safe) assumption is that &amp;quot;c&amp;quot; is so large that all changes in the radiation field can be assumed instantaneous, and those &amp;quot;c&amp;quot;-dependent terms can be dropped.&lt;br /&gt;
# The conservation equations of radiation hydrodynamics describe conservation of mass, momentum, energy. Ideally, they should be solved in one (perhaps, implicit) update. Operator-splitting them into two steps (hydrodynamics and transfer) is good enough for this problem, but it's worth keeping in mind that it's an approximation.&lt;br /&gt;
&lt;br /&gt;
==Approximations that are not so clear==&lt;br /&gt;
&lt;br /&gt;
# It is assumed that all variations in matter properties caused by radiation -- heating and the resulting changes in opacity/emissivity -- are not fast, i.e. they happen on a fluid flow timescale (or shorter). Therefore, these changes can be computed in the hydrodynamical update. I suspect in the cloud problem many radiation-driven changes happen on a timescale dictated by microphysics of radiation-matter interaction that is often very short, e.g., a cloud can be heated or evaporated by radiation before it can adjust hydrodynamically. This means that one needs to do radiative transfer/microphysics updates continuously throughout the hydrodynamical timestep, as opposed to doing it once per timestep. There are two methods: doing subcycling (transfer-microphysics-transfer-microphysics-...), or doing a simultaneous implicit solve.&lt;/div&gt;</summary>
		<author><name>Razoumov</name></author>	</entry>

	<entry>
		<id>https://www.sharcnet.ca/help/index.php?title=User:Ppomorsk/Toward_Exascale_Simulations_of_3D_Radiative_Transfer_for_Cloudy_Atmospheres&amp;diff=2313</id>
		<title>User:Ppomorsk/Toward Exascale Simulations of 3D Radiative Transfer for Cloudy Atmospheres</title>
		<link rel="alternate" type="text/html" href="https://www.sharcnet.ca/help/index.php?title=User:Ppomorsk/Toward_Exascale_Simulations_of_3D_Radiative_Transfer_for_Cloudy_Atmospheres&amp;diff=2313"/>
				<updated>2010-10-12T16:03:34Z</updated>
		
		<summary type="html">&lt;p&gt;Razoumov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Project Title: '''Toward Exascale Simulations of 3D Radiative Transfer for Cloudy Atmospheres '''&lt;br /&gt;
&lt;br /&gt;
Project originators: &lt;br /&gt;
*Howard Barker, Environment Canada&lt;br /&gt;
*Jacon Cole, Environment Canada&lt;br /&gt;
*Philip Austin, UBC&lt;br /&gt;
&lt;br /&gt;
SHARCNET programming support:&lt;br /&gt;
*Pawel Pomorski &lt;br /&gt;
*Alex Razoumov&lt;br /&gt;
&lt;br /&gt;
The goal of this project is to modify an existing radiative transfer code (one of the components of climate and weather modelling used by the EC group) to make it fully parallel. The code uses a Monte Carlo approach to inject photons into the domain studied and compute their propagation.&lt;br /&gt;
&lt;br /&gt;
The approach of the initial code is to supply each processor with the entire spatial domain and inject N photons per each parallel processor.  This approach does result in a parallel speedup but suffers from memory limitations.  Thus the first improvement to the code will be to decompose the spatial domain into subdomains which will be assigned to individual processors.  This will require adding code to handle photons transferring between domains as they cross the boundary.  &lt;br /&gt;
&lt;br /&gt;
Once that is done, the second stage of the project will be to improve the above approach to ensure good load balancing between processors.&lt;br /&gt;
&lt;br /&gt;
==Physics assumptions that we don't need to worry about.==&lt;br /&gt;
&lt;br /&gt;
# Radiation propagates at a finite speed &amp;quot;c&amp;quot;, so strictly speaking the equation of radiative transfer should include a time-dependent advection term (differential transfer equation) or the &amp;quot;retarded&amp;quot; energy (integral transfer equation). The working (and pretty safe) assumption is that &amp;quot;c&amp;quot; is so large that all changes in the radiation field can be assumed instantaneous, and those &amp;quot;c&amp;quot;-dependent terms can be dropped.&lt;br /&gt;
# The conservation equations of radiation hydrodynamics describe conservation of mass, momentum, energy. Ideally, they should be solved in one (perhaps, implicit) update. Operator-splitting them into two steps (hydrodynamics and transfer) is good enough for this problem, but it's worth keeping in mind that it's an approximation.&lt;/div&gt;</summary>
		<author><name>Razoumov</name></author>	</entry>

	<entry>
		<id>https://www.sharcnet.ca/help/index.php?title=User:Ppomorsk/Toward_Exascale_Simulations_of_3D_Radiative_Transfer_for_Cloudy_Atmospheres&amp;diff=2312</id>
		<title>User:Ppomorsk/Toward Exascale Simulations of 3D Radiative Transfer for Cloudy Atmospheres</title>
		<link rel="alternate" type="text/html" href="https://www.sharcnet.ca/help/index.php?title=User:Ppomorsk/Toward_Exascale_Simulations_of_3D_Radiative_Transfer_for_Cloudy_Atmospheres&amp;diff=2312"/>
				<updated>2010-10-12T16:01:26Z</updated>
		
		<summary type="html">&lt;p&gt;Razoumov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Project Title: '''Toward Exascale Simulations of 3D Radiative Transfer for Cloudy Atmospheres '''&lt;br /&gt;
&lt;br /&gt;
Project originators: &lt;br /&gt;
*Howard Barker, Environment Canada&lt;br /&gt;
*Jacon Cole, Environment Canada&lt;br /&gt;
*Philip Austin, UBC&lt;br /&gt;
&lt;br /&gt;
SHARCNET programming support:&lt;br /&gt;
*Pawel Pomorski &lt;br /&gt;
*Alex Razoumov&lt;br /&gt;
&lt;br /&gt;
The goal of this project is to modify an existing radiative transfer code (one of the components of climate and weather modelling used by the EC group) to make it fully parallel. The code uses a Monte Carlo approach to inject photons into the domain studied and compute their propagation.&lt;br /&gt;
&lt;br /&gt;
The approach of the initial code is to supply each processor with the entire spatial domain and inject N photons per each parallel processor.  This approach does result in a parallel speedup but suffers from memory limitations.  Thus the first improvement to the code will be to decompose the spatial domain into subdomains which will be assigned to individual processors.  This will require adding code to handle photons transferring between domains as they cross the boundary.  &lt;br /&gt;
&lt;br /&gt;
Once that is done, the second stage of the project will be to improve the above approach to ensure good load balancing between processors.&lt;br /&gt;
&lt;br /&gt;
==Physics assumptions that we don't need to worry about.==&lt;br /&gt;
&lt;br /&gt;
# Radiation propagates at a finite speed &amp;quot;c&amp;quot;, so strictly speaking the equation of radiative transfer should include a time-dependent advection term (differential transfer equation) or the &amp;quot;retarded&amp;quot; energy (integral transfer equation). The working (and pretty safe) assumption is that &amp;quot;c&amp;quot; is so large that all changes in the radiation field can be assumed instantaneous, and those &amp;quot;c&amp;quot;-dependent terms can be dropped.&lt;/div&gt;</summary>
		<author><name>Razoumov</name></author>	</entry>

	<entry>
		<id>https://www.sharcnet.ca/help/index.php?title=File:TestJobsRequin-numberCores.png&amp;diff=2201</id>
		<title>File:TestJobsRequin-numberCores.png</title>
		<link rel="alternate" type="text/html" href="https://www.sharcnet.ca/help/index.php?title=File:TestJobsRequin-numberCores.png&amp;diff=2201"/>
				<updated>2010-09-13T17:57:31Z</updated>
		
		<summary type="html">&lt;p&gt;Razoumov: distribution of test jobs on requin by number of cores&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;distribution of test jobs on requin by number of cores&lt;/div&gt;</summary>
		<author><name>Razoumov</name></author>	</entry>

	</feed>