Region growing: Difference between revisions

From formulasearchengine
Jump to navigation Jump to search
 
en>Dekart
Moved article into new Category:Image segmentation
Line 1: Line 1:
Mandi is the identify individuals use to call me but my husband doesn't like it at all. Administering databases has been my working day career for a when and I'll be promoted soon. Playing badminton is the only passion his spouse doesn't approve of. My loved ones lives in California but I will have to move in a yr or two.<br><br>My blog - [http://kidsdentists.livejournal.com/646.html dentist]
[[File:3D von Neumann Stencil Model.svg|thumb|right|The shape of a 6-point 3D [[von Neumann neighborhood|von Neumann]] style stencil.]]
 
'''Stencil codes''' are a class of iterative [[GPGPU#Kernels|kernels]]<ref name="Roth">
  Roth, Gerald et al. (1997)
  Proceedings of SC'97: High Performance Networking and Computing.
  ''[http://citeseer.ist.psu.edu/viewdoc/summary?doi=10.1.1.53.1505 Compiling Stencils in High Performance Fortran.]''
</ref>
which update [[Array data structure|array elements]] according to some fixed pattern, called stencil.<ref name="Sloot">
  Sloot, Peter M.A. et al. (May 28, 2002)
  ''[http://books.google.com/books?id=qVcLw1UAFUsC&pg=PA843&dq=stencil+array&sig=g3gYXncOThX56TUBfHE7hnlSxJg#PPA843,M1 Computational Science – ICCS 2002: International Conference, Amsterdam, The Netherlands, April 21–24, 2002. Proceedings, Part I.]''
  Page 843. Publisher: Springer. ISBN 3-540-43591-3.
</ref>
They are most commonly found in the [[Source code|codes]] of  [[computer simulation]]s, e.g. for [[computational fluid dynamics]] in the context of scientific and engineering applications.
Other notable examples include solving [[partial differential equations]],<ref name="Roth"/> the [[Jacobi method|Jacobi]] kernel, the [[Gauss–Seidel method]],<ref name="Sloot"/> [[image processing]]<ref name="Roth"/> and [[Cellular automaton|cellular automata]].<ref name="Fey">
  Fey, Dietmar et al. (2010)
  ''[http://books.google.com/books?id=RJRZJHVyQ4EC&pg=PA51&dq=fey+grid&hl=de&ei=uGk8TtDAAo_zsgbEoZGpBQ&sa=X&oi=book_result&ct=result&resnum=1&ved=0CCoQ6AEwAA#v=onepage&q&f=true Grid-Computing: Eine Basistechnologie für Computational Science]''.
  Page 439. Publisher: Springer. ISBN 3-540-79746-7</ref>
The regular structure of the arrays sets stencil codes apart from other modeling methods such as the [[Finite element method]]. Most [[Finite difference method|finite difference codes]] which operate on regular grids can be formulated as stencil codes.
 
==Definition==
Stencil codes perform a sequence of sweeps (called timesteps) through a given array.<ref name="Sloot"/> Generally this is a 2- or 3-dimensional regular grid.<ref name="Fey"/> The elements of the arrays are often referred to as cells. In each timestep, the stencil code updates all array elements.<ref name="Sloot"/> Using neighboring array elements in a fixed pattern (called the stencil), each cell's new value is computed. In most cases boundary values are left unchanged, but in some cases (e.g. [[Lattice Boltzmann methods|LBM codes]]) those need to be adjusted during the course of the computation as well. Since the stencil is the same for each element, the pattern of data accesses is repeated.<ref>
  Yang, Laurence T.; Guo, Minyi. (August 12, 2005)
  ''[http://books.google.com/books?id=qA4DbnFB2XcC&pg=PA221&dq=Stencil+codes&as_brr=3&sig=H8wdKyABXT5P7kUh4lQGZ9C5zDk High-Performance Computing : Paradigm and Infrastructure.]''
  Page 221. Publisher: Wiley-Interscience. ISBN 0-471-65471-X
</ref>
 
More formally, we may define stencil codes as a [[N-tuple|5-tuple]] <math>(I, S, S_0, s, T)</math> with the following meaning:<ref name="Fey"/>
 
* <math>I = \prod_{i=1}^k [0, \ldots, n_i]</math> is the index set. It defines the topology of the array.
* <math>S</math> is the (not necessarily finite) set of states, one of which each cell may take on on any given timestep.
* <math>S_0\colon \Z^k \to S</math> defines the initial state of the system at time 0.
* <math>s \in \prod_{i=1}^l \Z^k</math> is the stencil itself and describes the actual shape of the neighborhood. (There are <math>l</math> elements in the stencil.
* <math>T\colon S^l \to S</math> is the transition function which is used to determine a cell's new state, depending on its neighbors.
 
Since ''I'' is a ''k''-dimensional integer interval, the array will always have the topology of a finite regular grid. The array is also called simulation space and individual cells are identified by their index <math>c \in I</math>. The stencil is an ordered set of <math>l</math> relative coordinates. We can now obtain for each cell <math>c</math> the tuple of its neighbors indices <math>I_c</math>
 
: <math>I_c = \{j \mid \exists x \in s: j = c + x\} \, </math>
 
Their states are given by mapping the tuple <math>I_c</math> to the corresponding tuple of states <math>N_i(c)</math>, where <math>N_i\colon I \to S^l</math> is defined as follows:
 
: <math>
N_i(c) = (s_1, \ldots, s_l) \text{ with } s_j = S_i(I_c(j)) \,
</math>
 
This is all we need to define the system's state for the following time steps <math>S_{i+1}\colon \Z^k \to S</math> with <math>i \in \N</math>:
 
: <math>
S_{i+1}(c) = \begin{cases}T(N_i(c)), & c \in I\\
                          S_i(c),    & c \in \Z^k \setminus I  \end{cases}
</math>
 
Note that <math>S_i</math> is defined on <math>\Z^k</math> and not just on <math>I</math> since the boundary conditions need to be set, too. Sometimes the elements of <math>I_c</math> may be defined by a vector addition modulo the simulation space's dimension to realize toroidal topologies:
 
: <math>
I_c = \{j \mid \exists x \in s: j = ((c + x) \mod(n_1, \ldots,  n_k))\}
</math>
 
This may be useful for implementing [[periodic boundary conditions]], which simplifies certain physical models.
 
=== Example: 2D Jacobi iteration ===
 
[[File:2D von Neumann Stencil.svg|thumb|right|Data dependencies of a selected cell in the 2D array.]]
 
To illustrate the formal definition, we'll have a look at how a two dimensional [[Jacobi method|Jacobi]] iteration can be defined. The update function computes the arithmetic mean of a cell's four neighbors. In this case we set off with an initial solution of 0. The left and right boundary are fixed at 1, while the upper and lower boundaries are set to 0. After a sufficient number of iterations, the system converges against a saddle-shape.
 
: <math>
\begin{align}
I & = [0, \ldots, 99]^2 \\
S & = \R \\
S_0 &: \Z^2 \to \R \\
S_0((x, y)) & = \begin{cases}
1, & x < 0 \\
0, & 0 \le x < 100 \\
1, & x \ge 100
        \end{cases}\\
s & = ((0, -1), (-1, 0), (1, 0), (0, 1)) \\
T &\colon \R^4 \to \R \\
T((x_1, x_2, x_3, x_4)) & = 0.25 \cdot (x_1 + x_2 + x_3 + x_4)
\end{align}
</math>
 
{{multiple image
  | width    = 100
  | align    = center
  | footer    = 2D Jacobi Iteration on a <math>100^2</math> Array
  | image1    = 2D_Jacobi_t_0000.png
  | alt1      = S_0
  | caption1  = <math>S_{0}</math>
  | image2    = 2D_Jacobi_t_0200.png
  | alt2      = S_200
  | caption2  = <math>S_{200}</math>
  | image3    = 2D_Jacobi_t_0400.png
  | alt3      = S_400
  | caption3  = <math>S_{400}</math>
  | image4    = 2D_Jacobi_t_0600.png
  | alt4      = S_600
  | caption4  = <math>S_{600}</math>
  | image5    = 2D_Jacobi_t_0800.png
  | alt5      = S_800
  | caption5  = <math>S_{800}</math>
  | image6    = 2D_Jacobi_t_1000.png
  | alt6      = S_1000
  | caption6  = <math>S_{1000}</math>
  }}
 
==Stencils==
 
The shape of the neighborhood used during the updates depends on the application itself. The most common stencils are the 2D or 3D versions of the [[von Neumann neighborhood]] and [[Moore neighborhood]]. The example above uses a 2D von Neumann stencil while LBM codes generally use its 3D variant. [[Conway's Game of Life]] uses the 2D Moore neighborhood. That said, other stencils such as a 25-point stencil for seismic wave propagation<ref>
  Micikevicius, Paulius et al. (2009)
  ''[http://portal.acm.org/citation.cfm?id=1513905 3D finite difference computation on GPUs using CUDA]''  
  Proceedings of 2nd Workshop on General Purpose Processing on Graphics Processing Units 
  ISBN 978-1-60558-517-8
</ref> can be found, too.
 
{{multiple image
  | width    = 100
  | align    = center
  | footer    = A selection of stencils used in various scientific applications.
  | image1    = Moore_d.gif
  | alt1      = 9-point stencil
  | caption1  = 9-point 2D stencil
  | image2    = Vierer-Nachbarschaft.png
  | alt2      = 5-point stencil
  | caption2  = 5-point 2D stencil
  | image3    = 3D_von_Neumann_Stencil_Model.svg
  | alt3      = 6-point stencil
  | caption3  = 6-point 3D stencil
  | image4    = 3D_Earth_Sciences_Stencil_Model.svg
  | alt4      = 25-point stencil
  | caption4  = 25-point 3D stencil
  }}
 
==Implementation issues==
Many simulation codes may be formulated naturally as stencil codes. Since computing time and memory consumption grow linearly with the number of array elements, parallel implementations of stencil codes are of paramount importance to research.<ref name="Datta">
  Datta, Kaushik (2009)
  ''[http://www.cs.berkeley.edu/~kdatta/pubs/EECS-2009-177.pdf Auto-tuning Stencil Codes for Cache-Based Multicore Platforms]'',
  Ph.D. Thesis
</ref>
This is challenging since the computations are tightly coupled (because of the cell updates depending on neighboring cells) and most stencil codes are memory bound (i.e. the ratio of memory accesses to calculations is high).<ref name="Wellein">
  Wellein, G et al. (2009)
  ''[http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=5254211 Efficient temporal blocking for stencil computations by multicore-aware wavefront parallelization]'',
  33rd Annual IEEE International Computer Software and Applications Conference, COMPSAC 2009
</ref>
Virtually all current parallel architectures have been explored for executing stencil codes efficiently;<ref name="datta2">
  Datta, Kaushik et al. (2008)
  ''[http://portal.acm.org/citation.cfm?id=1413375 Stencil computation optimization and auto-tuning on state-of-the-art multicore architectures],''
  SC '08 Proceedings of the 2008 ACM/IEEE conference on Supercomputing
</ref>
at the moment [[GPGPU]]s have proven to be most efficient.<ref name="schaefer">
  Schäfer, Andreas and Fey, Dietmar (2011)
  ''[http://www.sciencedirect.com/science/article/pii/S1877050911002791 High Performance Stencil Code Algorithms for GPGPUs]'',
  Proceedings of the International Conference on Computational Science, ICCS 2011
</ref>
 
==Libraries==
Due to both, the importance of stencil codes to [[computer simulation]]s and their high computational requirements, there are a number of efforts which aim at creating reusable libraries to support scientists in implementing new stencil codes. The libraries are mostly concerned with the parallelization, but may also tackle other challenges, such as IO, [[Computational steering|steering]] and [[Application checkpointing|checkpointing]]. They may be classified by their API.
 
===Patch-based libraries===
This is a traditional design. The library manages a set of ''n''-dimensional scalar arrays, which the user code may access to perform updates. The library handles the synchronization of the boundaries (dubbed ghost zone or halo). The advantage of this interface is that the user code may loop over the arrays, which makes it easy to integrate legacy codes<ref name="walberla">
  S. Donath, J. Götz, C. Feichtinger, K. Iglberger and U. Rüde (2010)
  ''[http://www.springerlink.com/content/p2583237l2187374/ waLBerla: Optimization for Itanium-based Systems with Thousands of Processors]'',
  High Performance Computing in Science and Engineering, Garching/Munich 2009
</ref>
. The disadvantage is that the library can not handle cache blocking (as this has to be done within the loops<ref name="35dblocking">
  Nguyen, Anthony et al. (2010)
  ''[http://dl.acm.org/citation.cfm?id=1884658 3.5-D Blocking Optimization for Stencil Computations on Modern CPUs and GPUs]'',
  SC '10 Proceedings of the 2010 ACM/IEEE International Conference for High Performance Computing, Networking, Storage and Analysis
</ref>)
or wrapping of the code for accelerators (e.g. via CUDA or OpenCL). Notable implementations include [http://cactuscode.org/ Cactus], a physics problem solving environment, and [http://www10.informatik.uni-erlangen.de/Research/Projects/walberla/description.shtml waLBerla].
 
===Cell-based libraries===
These libraries move the interface to updating single simulation cells: only the current cell and its neighbors are exposed to the user code, e.g. via getter/setter methods. The advantage of this approach is that the library can control tightly which cells are updated in which order, which is useful not only to implement cache blocking,<ref name=schaefer />  
but also to run the same code on multi-cores and GPUs.<ref name="physis">
  Naoya Maruyama, Tatsuo Nomura, Kento Sato, and Satoshi Matsuoka (2011)
  ''Physis: An Implicitly Parallel Programming Model for Stencil Computations on Large-Scale GPU-Accelerated Supercomputers'',
  SC '11 Proceedings of the 2011 ACM/IEEE International Conference for High Performance Computing, Networking, Storage and Analysis
</ref> This approach requires the user to recompile his source code together with the library. Otherwise a function call for every cell update would be required, which would seriously impair performance. This is only feasible with techniques such as [[Template (programming)|class templates]] or [[metaprogramming]], which is also the reason why this design is only found in newer libraries. Examples are [https://github.com/naoyam/physis Physis] and [http://www.libgeodecomp.org LibGeoDecomp].
 
==See also==
* [[Finite difference method]]
* [[Computer simulation]]
* [[Five-point stencil]]
* [[Stencil jumping]]
 
==References==
{{reflist|33em}}
 
==External links==
* [https://github.com/naoyam/physis Physis]
* [http://www.libgeodecomp.org LibGeoDecomp]
 
{{DEFAULTSORT:Computer Simulation}}
[[Category:Computational science]]
[[Category:Scientific modeling]]
[[Category:Simulation software]]

Revision as of 18:08, 1 June 2013

The shape of a 6-point 3D von Neumann style stencil.

Stencil codes are a class of iterative kernels[1] which update array elements according to some fixed pattern, called stencil.[2] They are most commonly found in the codes of computer simulations, e.g. for computational fluid dynamics in the context of scientific and engineering applications. Other notable examples include solving partial differential equations,[1] the Jacobi kernel, the Gauss–Seidel method,[2] image processing[1] and cellular automata.[3] The regular structure of the arrays sets stencil codes apart from other modeling methods such as the Finite element method. Most finite difference codes which operate on regular grids can be formulated as stencil codes.

Definition

Stencil codes perform a sequence of sweeps (called timesteps) through a given array.[2] Generally this is a 2- or 3-dimensional regular grid.[3] The elements of the arrays are often referred to as cells. In each timestep, the stencil code updates all array elements.[2] Using neighboring array elements in a fixed pattern (called the stencil), each cell's new value is computed. In most cases boundary values are left unchanged, but in some cases (e.g. LBM codes) those need to be adjusted during the course of the computation as well. Since the stencil is the same for each element, the pattern of data accesses is repeated.[4]

More formally, we may define stencil codes as a 5-tuple with the following meaning:[3]

Since I is a k-dimensional integer interval, the array will always have the topology of a finite regular grid. The array is also called simulation space and individual cells are identified by their index . The stencil is an ordered set of relative coordinates. We can now obtain for each cell the tuple of its neighbors indices

Their states are given by mapping the tuple to the corresponding tuple of states , where is defined as follows:

This is all we need to define the system's state for the following time steps with :

Note that is defined on and not just on since the boundary conditions need to be set, too. Sometimes the elements of may be defined by a vector addition modulo the simulation space's dimension to realize toroidal topologies:

This may be useful for implementing periodic boundary conditions, which simplifies certain physical models.

Example: 2D Jacobi iteration

Data dependencies of a selected cell in the 2D array.

To illustrate the formal definition, we'll have a look at how a two dimensional Jacobi iteration can be defined. The update function computes the arithmetic mean of a cell's four neighbors. In this case we set off with an initial solution of 0. The left and right boundary are fixed at 1, while the upper and lower boundaries are set to 0. After a sufficient number of iterations, the system converges against a saddle-shape.

People are nonetheless rushing to buy properties in Singapore. A new residential condominium mission in Bedok had a long queue three days before its official launch and bought more than 350 units on the very first day. Nonetheless, there is a ‘development' that had emerged in 2011 that the majority have possibly overlooked.

In August, more than a hundred individuals across 16 states reportedly had been sickened with salmonella after consuming mangos In September, the Meals and Drug Administration detained mango imports from a Mexican packing house after the fruits had been linked to the sickenings Save Cash On Your Online Purchasing Make saving money when purchasing on-line a breeze with Bodge's favourite app, Invisible Hands. This helpful program does the price-checking analysis for you, and will warn you when a unique site has a better value - or let you realize that you have found the most effective deal. Watch Posted by Edison Foo September 29, 2013 HEARTH SALE!!! From only $9xx,000! We hope this listing will help launch your search for new properties in Singapore. It's unlawful to purchase ice cream after 6 pm, in Newark.

for a borrower with one or more excellent residential property loans3; and No SSD will be payable by the seller if the property is bought more than three years after it was bought. Non-extension of the Jan 2009 Funds assistance measures for the property market when the measures expire. Permitting up to 2 years of property tax deferral for land accepted for improvement. Lively secondary marketplace for easy exit of property investments. Curiosity on mortgage fee is tax deductible when the property is rented out. We've progressive property tax rates for residential properties- the higher the value of the residential property, the upper the tax charge. Why do I've to pay property tax on my house when I'm an onwer-occupier and not deriving rental earnings? Palacio Cluster Landed

After obtaining a Sale License (topic to authorities circumstances meant to guard individuals shopping for property in Singapore), he might www.rmmonline.com proceed to sell units in his growth. Funding in the property market of Singapore is likely one of the few investment choices the place utilizing the bank's cash could not be any easier. The power of expats, to make a down payment, leverage the capital and consequently improve total return on investment, is excessive in Singapore. PRs who own a HDB flat must sell their flat inside six months of buying a non-public residential property in Singapore. EVERLASTING residents (PRs) now face unprecedented limits on their skill to purchase property in Singapore. New Condo in 2013 March Foreigners are eligible for Singapore greenback mortgage loan. housing grant

Skilled property brokers in Singapore will assist the client and defend their interests throughout the acquisition, and will help safe the provide at the best possible price. The agents may even be sure that all paperwork are in order and that the vendor is the rightful proprietor of the property. Most of the property brokers share their databases with each other. Tuesday's measures come after the Monetary Authority of Singapore in June tightened rules on property loans, and closed loopholes that allowed some householders to circumvent loan restrictions and avoid paying levies when buying extra property. Contact us for a FREE housing loan analysis and to study concerning the newest mortgage to worth on Singapore housing loans. J Gateway Condominium (Bought Out) Oct, 2013

6. Completion of automotive park, roads and drains serving the housing project 5% 7. Notice of Vacant Possession (Upon obtaining Temporary Occupation Permit) The estimates given by SingaporeHousingLoan.SG's calculator are not quotations and are usually not binding in any way on SingaporeHousingLoan.sg or the consumer. The method of calculation does not exactly mirror that of which is being used by the individual monetary establishment and the data provided should be used as a information only. SingaporeHousingLoan.SG's calculator does not pre-qualify you for any housing loan from any monetary institution. Undercover Report Finds Unlawful Rat Meat Sold In London Market Unpasteurized Tempeh Linked To Salmonella Outbreak That Sickens 60 Hottest EC Launch in Sengkang!

BuyRentSingaporeProperty.com is dedicated in providing the newest residential launches, Developer's sales, new launches, resale, HIGH tasks and rental of properties in Singapore. Then there are new launch property condos in the mid-tier range. These are sometimes in the vicinity of the city fringe, in areas corresponding to Newton and Novena Tanjong Rhu. These new launch projects are popular due to their proximity to town heart, the place the enterprise and entertainment centers and all the amenities they provide, but they're usually cheaper than the City core region tasks. Why submit cheques to register for new property launches in Singapore? Riversails Apartment @ Higher Serangoon LakeVille @ Jurong Lakeside Condo by MCL Ferra Condo @ Leonie Hill

Stencils

The shape of the neighborhood used during the updates depends on the application itself. The most common stencils are the 2D or 3D versions of the von Neumann neighborhood and Moore neighborhood. The example above uses a 2D von Neumann stencil while LBM codes generally use its 3D variant. Conway's Game of Life uses the 2D Moore neighborhood. That said, other stencils such as a 25-point stencil for seismic wave propagation[5] can be found, too.

People are nonetheless rushing to buy properties in Singapore. A new residential condominium mission in Bedok had a long queue three days before its official launch and bought more than 350 units on the very first day. Nonetheless, there is a ‘development' that had emerged in 2011 that the majority have possibly overlooked.

In August, more than a hundred individuals across 16 states reportedly had been sickened with salmonella after consuming mangos In September, the Meals and Drug Administration detained mango imports from a Mexican packing house after the fruits had been linked to the sickenings Save Cash On Your Online Purchasing Make saving money when purchasing on-line a breeze with Bodge's favourite app, Invisible Hands. This helpful program does the price-checking analysis for you, and will warn you when a unique site has a better value - or let you realize that you have found the most effective deal. Watch Posted by Edison Foo September 29, 2013 HEARTH SALE!!! From only $9xx,000! We hope this listing will help launch your search for new properties in Singapore. It's unlawful to purchase ice cream after 6 pm, in Newark.

for a borrower with one or more excellent residential property loans3; and No SSD will be payable by the seller if the property is bought more than three years after it was bought. Non-extension of the Jan 2009 Funds assistance measures for the property market when the measures expire. Permitting up to 2 years of property tax deferral for land accepted for improvement. Lively secondary marketplace for easy exit of property investments. Curiosity on mortgage fee is tax deductible when the property is rented out. We've progressive property tax rates for residential properties- the higher the value of the residential property, the upper the tax charge. Why do I've to pay property tax on my house when I'm an onwer-occupier and not deriving rental earnings? Palacio Cluster Landed

After obtaining a Sale License (topic to authorities circumstances meant to guard individuals shopping for property in Singapore), he might www.rmmonline.com proceed to sell units in his growth. Funding in the property market of Singapore is likely one of the few investment choices the place utilizing the bank's cash could not be any easier. The power of expats, to make a down payment, leverage the capital and consequently improve total return on investment, is excessive in Singapore. PRs who own a HDB flat must sell their flat inside six months of buying a non-public residential property in Singapore. EVERLASTING residents (PRs) now face unprecedented limits on their skill to purchase property in Singapore. New Condo in 2013 March Foreigners are eligible for Singapore greenback mortgage loan. housing grant

Skilled property brokers in Singapore will assist the client and defend their interests throughout the acquisition, and will help safe the provide at the best possible price. The agents may even be sure that all paperwork are in order and that the vendor is the rightful proprietor of the property. Most of the property brokers share their databases with each other. Tuesday's measures come after the Monetary Authority of Singapore in June tightened rules on property loans, and closed loopholes that allowed some householders to circumvent loan restrictions and avoid paying levies when buying extra property. Contact us for a FREE housing loan analysis and to study concerning the newest mortgage to worth on Singapore housing loans. J Gateway Condominium (Bought Out) Oct, 2013

6. Completion of automotive park, roads and drains serving the housing project 5% 7. Notice of Vacant Possession (Upon obtaining Temporary Occupation Permit) The estimates given by SingaporeHousingLoan.SG's calculator are not quotations and are usually not binding in any way on SingaporeHousingLoan.sg or the consumer. The method of calculation does not exactly mirror that of which is being used by the individual monetary establishment and the data provided should be used as a information only. SingaporeHousingLoan.SG's calculator does not pre-qualify you for any housing loan from any monetary institution. Undercover Report Finds Unlawful Rat Meat Sold In London Market Unpasteurized Tempeh Linked To Salmonella Outbreak That Sickens 60 Hottest EC Launch in Sengkang!

BuyRentSingaporeProperty.com is dedicated in providing the newest residential launches, Developer's sales, new launches, resale, HIGH tasks and rental of properties in Singapore. Then there are new launch property condos in the mid-tier range. These are sometimes in the vicinity of the city fringe, in areas corresponding to Newton and Novena Tanjong Rhu. These new launch projects are popular due to their proximity to town heart, the place the enterprise and entertainment centers and all the amenities they provide, but they're usually cheaper than the City core region tasks. Why submit cheques to register for new property launches in Singapore? Riversails Apartment @ Higher Serangoon LakeVille @ Jurong Lakeside Condo by MCL Ferra Condo @ Leonie Hill

Implementation issues

Many simulation codes may be formulated naturally as stencil codes. Since computing time and memory consumption grow linearly with the number of array elements, parallel implementations of stencil codes are of paramount importance to research.[6] This is challenging since the computations are tightly coupled (because of the cell updates depending on neighboring cells) and most stencil codes are memory bound (i.e. the ratio of memory accesses to calculations is high).[7] Virtually all current parallel architectures have been explored for executing stencil codes efficiently;[8] at the moment GPGPUs have proven to be most efficient.[9]

Libraries

Due to both, the importance of stencil codes to computer simulations and their high computational requirements, there are a number of efforts which aim at creating reusable libraries to support scientists in implementing new stencil codes. The libraries are mostly concerned with the parallelization, but may also tackle other challenges, such as IO, steering and checkpointing. They may be classified by their API.

Patch-based libraries

This is a traditional design. The library manages a set of n-dimensional scalar arrays, which the user code may access to perform updates. The library handles the synchronization of the boundaries (dubbed ghost zone or halo). The advantage of this interface is that the user code may loop over the arrays, which makes it easy to integrate legacy codes[10] . The disadvantage is that the library can not handle cache blocking (as this has to be done within the loops[11]) or wrapping of the code for accelerators (e.g. via CUDA or OpenCL). Notable implementations include Cactus, a physics problem solving environment, and waLBerla.

Cell-based libraries

These libraries move the interface to updating single simulation cells: only the current cell and its neighbors are exposed to the user code, e.g. via getter/setter methods. The advantage of this approach is that the library can control tightly which cells are updated in which order, which is useful not only to implement cache blocking,[9] but also to run the same code on multi-cores and GPUs.[12] This approach requires the user to recompile his source code together with the library. Otherwise a function call for every cell update would be required, which would seriously impair performance. This is only feasible with techniques such as class templates or metaprogramming, which is also the reason why this design is only found in newer libraries. Examples are Physis and LibGeoDecomp.

See also

References

43 year old Petroleum Engineer Harry from Deep River, usually spends time with hobbies and interests like renting movies, property developers in singapore new condominium and vehicle racing. Constantly enjoys going to destinations like Camino Real de Tierra Adentro.

External links

  1. 1.0 1.1 1.2 Roth, Gerald et al. (1997) Proceedings of SC'97: High Performance Networking and Computing. Compiling Stencils in High Performance Fortran.
  2. 2.0 2.1 2.2 2.3 Sloot, Peter M.A. et al. (May 28, 2002) Computational Science – ICCS 2002: International Conference, Amsterdam, The Netherlands, April 21–24, 2002. Proceedings, Part I. Page 843. Publisher: Springer. ISBN 3-540-43591-3.
  3. 3.0 3.1 3.2 Fey, Dietmar et al. (2010) Grid-Computing: Eine Basistechnologie für Computational Science. Page 439. Publisher: Springer. ISBN 3-540-79746-7
  4. Yang, Laurence T.; Guo, Minyi. (August 12, 2005) High-Performance Computing : Paradigm and Infrastructure. Page 221. Publisher: Wiley-Interscience. ISBN 0-471-65471-X
  5. Micikevicius, Paulius et al. (2009) 3D finite difference computation on GPUs using CUDA Proceedings of 2nd Workshop on General Purpose Processing on Graphics Processing Units ISBN 978-1-60558-517-8
  6. Datta, Kaushik (2009) Auto-tuning Stencil Codes for Cache-Based Multicore Platforms, Ph.D. Thesis
  7. Wellein, G et al. (2009) Efficient temporal blocking for stencil computations by multicore-aware wavefront parallelization, 33rd Annual IEEE International Computer Software and Applications Conference, COMPSAC 2009
  8. Datta, Kaushik et al. (2008) Stencil computation optimization and auto-tuning on state-of-the-art multicore architectures, SC '08 Proceedings of the 2008 ACM/IEEE conference on Supercomputing
  9. 9.0 9.1 Schäfer, Andreas and Fey, Dietmar (2011) High Performance Stencil Code Algorithms for GPGPUs, Proceedings of the International Conference on Computational Science, ICCS 2011
  10. S. Donath, J. Götz, C. Feichtinger, K. Iglberger and U. Rüde (2010) waLBerla: Optimization for Itanium-based Systems with Thousands of Processors, High Performance Computing in Science and Engineering, Garching/Munich 2009
  11. Nguyen, Anthony et al. (2010) 3.5-D Blocking Optimization for Stencil Computations on Modern CPUs and GPUs, SC '10 Proceedings of the 2010 ACM/IEEE International Conference for High Performance Computing, Networking, Storage and Analysis
  12. Naoya Maruyama, Tatsuo Nomura, Kento Sato, and Satoshi Matsuoka (2011) Physis: An Implicitly Parallel Programming Model for Stencil Computations on Large-Scale GPU-Accelerated Supercomputers, SC '11 Proceedings of the 2011 ACM/IEEE International Conference for High Performance Computing, Networking, Storage and Analysis