blob: 2b98f28cb706e99872e467b2c3a2a2986d6800f2 [file] [log] [blame]
<HTML>
<BODY>
<H2>Overview</H2>
Parallel seismic simulation that demonstrates use of parallel_for.
<H2>Files</H2>
<DL>
<DT><A HREF="SeismicSimulation.cpp">SeismicSimulation.cpp</A>
<DD>Source code that does wave propagation.
<DT><A HREF="Makefile">Makefile</A>
<DD>Makefile for building example.
</DL>
<H2>Directories</H2>
<DL>
<DT><A HREF="msvs">msvs</A>
<DD>Contains Microsoft* Visual Studio* 2005 workspace for building and running the example.
<DT><A HREF="xcode">xcode</A>
<DD>Contains Xcode* IDE workspace for building and running the example.
</DL>
<H2>To Build</H2>
General build directions can be found <A HREF=../../index.html#build>here</A>.
The following additional options are supported:
<DL>
<DT><TT>make [(general targets: {release, debug} [test])] UI={con, gdi, dd, x, mac}</TT>
<DD>Build and run as usual, but build with the specified GUI driver: console, GDI+*, Direct Draw*, X11, or OpenGL*
(see the description of the <A HREF=../../common/index.html>common GUI code</A>
for more information on available graphics support).
For Linux* and Mac OS* X systems, the best available driver is detected automatically by the Makefile.
For Windows* systems, UI=gdi is the default GUI driver; compiling with UI=dd may offer superior
performance, but can only be used if the Microsoft* Direct Draw* SDK is installed on your system
and if overlay is supported by your graphics card.
Use UI=con to build without the GUI for use in making performance measurements
<I>(strongly recommended when measuring performance or scalability; see note below)</I>.
<DT><TT>make [(above options or targets)] XARCH=x64</TT>
<DD>Build and run as above, but also specify XARCH=x64
(or XARCH=AMD64 for older compilers) when building the example on Windows* as a 64-bit binary.
<DT><TT>make [(above options or targets)] DDLIB_DIR=&lt;<I>specify path to library directory of Direct Draw* SDK here</I>&gt;</TT>
<DD>If you experience ddraw.lib linking problems, specify the correct library directory via this option.
<DT><TT>make [(above options or targets)] CXXFLAGS=-DX_FULLSYNC</TT>
<DD>Build and run as above, but enable full X11 synchronization if you experience "tearing" of motion on slower video systems.
</DL>
<H2>Usage</H2>
<DL>
<DT><TT>seismic [<I>M</I>[:<I>N</I>] [<I>F</I>]]</TT>
<DD>For non-interactive mode, <I>M</I> and <I>N</I> are a range of numbers of threads to be used.
For interactive mode, <I>N</I> is the number of threads to use while <I>M</I> indicates if
a separate thread will be used for the GUI (&gt;0) or not (0). For example,
<TT>seismic&nbsp;1:3</TT> will use 3 threads for computation and a separate thread for
processing GUI events; this option may give better visible performance on a 4-processor
system when using GDI+ graphics.
<DD><I>F</I> is the number of frames the example processes internally. Default value is 100;
reduce it to shorten example run time.
<DT>To run a short version of this example, e.g., for use with Intel&reg; Threading Tools:
<DD>Build a <I>debug</I> version of the example
(see the <A HREF=../../index.html#build>build directions</A>).
<BR>Run it with the desired number of threads and smaller number of frames, e.g., <TT>seismic 4 5</TT>.
</DL>
<H2>Hot keys</H2>
The following hot keys can be used in interactive execution mode when the example is compiled with the graphical
user interface:
<DL>
<dt>&lt;left mouse button&gt;
<dd>Starts new seismic wave in place specified by mouse cursor.
<dt>&lt;space&gt;
<dd>Toggles between parallel and serial execution modes.
<dt>&lt;p&gt;
<dd>Enables parallel execution mode.
<dt>&lt;s&gt;
<dd>Enables serial execution mode.
<dt>&lt;e&gt;
<dd>Enables screen updates.
<dt>&lt;d&gt;
<dd>Disables screen updates <I>(strongly recommended when measuring performance or scalability; see note below)</I>.
<dt>&lt;esc&gt;
<dd>Stops execution.
</DL>
<H2>Notes</H2>
<UL>
<LI>While running with the GUI display turned on should yield reasonable performance in most cases, <I>running with the GUI
display turned off is strongly recommended</I> in order to demonstrate the full performance and scalability of the example.
<LI>If using the X-windows (X11) GUI on Mac OS* X systems, X11 might not be installed on the system by default.
To install X11 on Mac OS* X systems, use the operating system install disk, choose "Optional installs" and select X11 from
the "Applications" list. Alternatively, if X11 is not available, build without the GUI (see build targets above).
</UL>
<HR>
<A HREF="../index.html">Up to parent directory</A>
<p></p>
Copyright &copy; 2005-2010 Intel Corporation. All Rights Reserved.
<p></p>
Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are
registered trademarks or trademarks of Intel Corporation or its
subsidiaries in the United States and other countries.
<p></p>
* Other names and brands may be claimed as the property of others.
</BODY>
</HTML>