mirror of
https://github.com/wjakob/tbb.git
synced 2026-08-30 00:50:40 +08:00
e32d75f876
The new release TBB is now under a new more
open license.
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
The list of most significant changes made over time in
Intel(R) Threading Building Blocks (Intel(R) TBB).
Intel TBB 2017
TBB_INTERFACE_VERSION == 9100
Changes (w.r.t. Intel TBB 4.4 Update 5):
- static_partitioner class is now a fully supported feature.
- async_node class is now a fully supported feature.
- Improved dynamic memory allocation replacement on Windows* OS to skip
DLLs for which replacement cannot be done, instead of aborting.
- Intel TBB no longer performs dynamic memory allocation replacement
for Microsoft* Visual Studio* 2008.
- For 64-bit platforms, quadrupled the worst-case limit on the amount
of memory the Intel TBB allocator can handle.
- Added TBB_USE_GLIBCXX_VERSION macro to specify the version of GNU
libstdc++ when it cannot be properly recognized, e.g. when used
with Clang on Linux* OS. Inspired by a contribution from David A.
- Added graph/stereo example to demostrate tbb::flow::async_msg.
- Removed a few cases of excessive user data copying in the flow graph.
- Reworked split_node to eliminate unnecessary overheads.
- Added support for C++11 move semantics to the argument of
tbb::parallel_do_feeder::add() method.
- Added C++11 move constructor and assignment operator to
tbb::combinable template class.
- Added tbb::this_task_arena::max_concurrency() function and
max_concurrency() method of class task_arena returning the maximal
number of threads that can work inside an arena.
- Deprecated tbb::task_arena::current_thread_index() static method;
use tbb::this_task_arena::current_thread_index() function instead.
- All examples for commercial version of library moved online:
https://software.intel.com/en-us/product-code-samples. Examples are
available as a standalone package or as a part of Intel(R) Parallel
Studio XE or Intel(R) System Studio Online Samples packages.
Changes affecting backward compatibility:
- Renamed following methods and types in async_node class:
Old New
async_gateway_type => gateway_type
async_gateway() => gateway()
async_try_put() => try_put()
async_reserve() => reserve_wait()
async_commit() => release_wait()
- Internal layout of some flow graph nodes has changed; recompilation
is recommended for all binaries that use the flow graph.
Preview Features:
- Added template class streaming_node to the flow graph API. It allows
a flow graph to offload computations to other devices through
streaming or offloading APIs.
- Template class opencl_node reimplemented as a specialization of
streaming_node that works with OpenCL*.
- Added tbb::this_task_arena::isolate() function to isolate execution
of a group of tasks or an algorithm from other tasks submitted
to the scheduler.
Bugs fixed:
- Added a workaround for GCC bug #62258 in std::rethrow_exception()
to prevent possible problems in case of exception propagation.
- Fixed parallel_scan to provide correct result if the initial value
of an accumulator is not the operation identity value.
- Fixed a memory corruption in the memory allocator when it meets
internal limits.
- Fixed the memory allocator on 64-bit platforms to align memory
to 16 bytes by default for all allocations bigger than 8 bytes.
- As a workaround for crashes in the Intel TBB library compiled with
GCC 6, added -flifetime-dse=1 to compilation options on Linux* OS.
- Fixed a race in the flow graph implementation.
Open-source contributions integrated:
- Enabling use of C++11 'override' keyword by Raf Schietekat.
------------------------------------------------------------------------
573 lines
20 KiB
HTML
573 lines
20 KiB
HTML
<!DOCTYPE html>
|
|
<html xmlns:mso="urn:schemas-microsoft-com:office:office" xmlns:msdt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<style>
|
|
::selection {
|
|
background: #b7ffb7;
|
|
}
|
|
::-moz-selection {
|
|
background: #b7ffb7;
|
|
}
|
|
|
|
body {
|
|
font-family: Arial, Helvetica, sans-serif;
|
|
font-size: 16px;
|
|
width: 800px;
|
|
margin: 0 auto;
|
|
}
|
|
#banner {
|
|
/* Div for banner */
|
|
float:left;
|
|
margin: 0px;
|
|
margin-bottom: 10px;
|
|
width: 100%;
|
|
background-color: #0071C5;
|
|
z-index: 0;
|
|
}
|
|
#banner .logo {
|
|
/* Apply to logo in banner. Add as class to image tag. */
|
|
float: left;
|
|
margin-right: 20px;
|
|
margin-left: 20px;
|
|
margin-top: 15px;
|
|
padding-bottom: 5px;
|
|
}
|
|
h1 {
|
|
text-align: center;
|
|
font-size: 36px;
|
|
}
|
|
h1.title {
|
|
/* Add as class to H1 in banner */
|
|
font-family: "Intel Clear", Verdana, Arial, sans-serif;
|
|
font-weight:normal;
|
|
color: #FFFFFF;
|
|
font-size: 170%;
|
|
margin-right: 40px;
|
|
margin-left: 40px;
|
|
padding-right: 20px;
|
|
text-indent: 20px;
|
|
}
|
|
.h3-alike {
|
|
display:inline;
|
|
font-size: 1.17em;
|
|
font-weight: bold;
|
|
color: #0071C5;
|
|
}
|
|
h3 {
|
|
font-size: 1.17em;
|
|
font-weight: bold;
|
|
color: #0071C5;
|
|
}
|
|
.h4-alike {
|
|
display:inline;
|
|
font-size: 1.05em;
|
|
font-weight: bold;
|
|
}
|
|
pre {
|
|
font-family: "Consolas", Monaco, monospace;
|
|
font-size:small;
|
|
background: #fafafa;
|
|
margin: 0;
|
|
padding-left:20px;
|
|
}
|
|
#footer {
|
|
font-size: small;
|
|
}
|
|
code {
|
|
font-family: "Consolas", Monaco, monospace;
|
|
}
|
|
.code-block
|
|
{
|
|
padding-left:20px;
|
|
}
|
|
.changes {
|
|
margin: 1em 0;
|
|
}
|
|
.changes input:active {
|
|
position: relative;
|
|
top: 1px;
|
|
}
|
|
.changes input:hover:after {
|
|
padding-left: 16px;
|
|
font-size: 10px;
|
|
content: 'More';
|
|
}
|
|
.changes input:checked:hover:after {
|
|
content: 'Less';
|
|
}
|
|
.changes input + .show-hide {
|
|
display: none;
|
|
}
|
|
.changes input:checked + .show-hide {
|
|
display: block;
|
|
}
|
|
|
|
ul {
|
|
margin: 0;
|
|
padding: 0.5em 0 0.5em 2.5em;
|
|
}
|
|
ul li {
|
|
margin-bottom: 3px;
|
|
}
|
|
ul li:last-child {
|
|
margin-bottom: 0;
|
|
}
|
|
.disc {
|
|
list-style-type:disc
|
|
}
|
|
.circ {
|
|
list-style-type:circle
|
|
}
|
|
|
|
.single {
|
|
padding: 0 0.5em;
|
|
}
|
|
|
|
/* ------------------------------------------------- */
|
|
/* Table styles */
|
|
table{
|
|
margin-bottom:5pt;
|
|
border-collapse:collapse;
|
|
margin-left:0px;
|
|
margin-top:0.3em;
|
|
font-size:10pt;
|
|
}
|
|
tr{
|
|
vertical-align:top;
|
|
}
|
|
th,
|
|
th h3{
|
|
padding:4px;
|
|
text-align:left;
|
|
background-color:#0071C5;
|
|
font-weight:bold;
|
|
margin-top:1px;
|
|
margin-bottom:0;
|
|
color:#FFFFFF;
|
|
font-size:10pt;
|
|
vertical-align:middle;
|
|
}
|
|
th{
|
|
border:1px #dddddd solid;
|
|
padding-top:2px;
|
|
padding-bottom:0px;
|
|
padding-right:3px;
|
|
padding-left:3px;
|
|
}
|
|
td{
|
|
border:1px #dddddd solid;
|
|
vertical-align:top;
|
|
font-size:100%;
|
|
text-align:left;
|
|
margin-bottom:0;
|
|
}
|
|
td,
|
|
td p{
|
|
margin-top:0;
|
|
margin-left:0;
|
|
text-align:left;
|
|
font-size:inherit;
|
|
line-height:120%;
|
|
}
|
|
td p{
|
|
margin-bottom:0;
|
|
padding-top:5px;
|
|
padding-bottom:5px;
|
|
padding-right:5px;
|
|
padding-left:1px;
|
|
}
|
|
.noborder{
|
|
border:0px none;
|
|
}
|
|
.noborder1stcol{
|
|
border:0px none;
|
|
padding-left:0pt;
|
|
}
|
|
td ol{
|
|
font-size:inherit;
|
|
margin-left:28px;
|
|
}
|
|
td ul{
|
|
font-size:inherit;
|
|
margin-left:24px;
|
|
}
|
|
.DefListTbl{
|
|
width:90%;
|
|
margin-left:-3pt;
|
|
}
|
|
.syntaxdiagramtbl{
|
|
margin-left:-3pt;
|
|
}
|
|
.sdtbl{
|
|
}
|
|
.sdrow{
|
|
}
|
|
.sdtblp{
|
|
border:0px none;
|
|
font-size:inherit;
|
|
line-height:120%;
|
|
margin-bottom:0;
|
|
padding-bottom:0px;
|
|
padding-top:5px;
|
|
padding-left:0px;
|
|
padding-right:5px;
|
|
vertical-align:top;
|
|
}
|
|
.idepara, .ide_para{
|
|
border:0px none;
|
|
font-size:inherit;
|
|
line-height:120%;
|
|
margin-bottom:0;
|
|
padding-bottom:0px;
|
|
padding-top:5px;
|
|
padding-left:0px;
|
|
padding-right:5px;
|
|
vertical-align:top;
|
|
}
|
|
|
|
.specs {
|
|
border-collapse:collapse;
|
|
}
|
|
.specs td, .specs th {
|
|
font-size: 14px;
|
|
}
|
|
.specs td {
|
|
border: 1px solid black;
|
|
}
|
|
.specs td td, .specs td th {
|
|
border: none;
|
|
}
|
|
.specs td, .specs td td, .specs td th {
|
|
padding: 0 0.2em 0.2em;
|
|
text-align: center;
|
|
}
|
|
.specs td tr:last-child td,
|
|
.specs td tr:last-child th {
|
|
padding: 0 0.2em;
|
|
}
|
|
.serial-time {
|
|
}
|
|
.modified-time {
|
|
width: 6.5em;
|
|
}
|
|
.compiler {
|
|
}
|
|
.comp-opt {
|
|
}
|
|
.sys-specs {
|
|
width: 18em;
|
|
}
|
|
.note {
|
|
font-size:small;
|
|
font-style: italic;
|
|
}
|
|
</style>
|
|
<title>Intel® Threading Building Blocks. Tachyon sample</title>
|
|
</head>
|
|
<body>
|
|
|
|
<div id="banner">
|
|
<img class="logo" src="data:image/png;base64,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
|
|
9Or1LzUmVVz+HJXDAAAAAElFTkSuQmCC">
|
|
<h1 class="title">Intel® Threading Building Blocks.<br>Tachyon sample</h1>
|
|
</div>
|
|
|
|
<p>
|
|
Parallel raytracer / renderer that demonstrates the use of parallel_for.
|
|
</p>
|
|
<p><i>
|
|
This example includes software developed by John E. Stone. See
|
|
<a href="#copyright">here</a> for copyright information.
|
|
</i></p>
|
|
<p>
|
|
This example is a 2-D raytracer/renderer that visually shows different parallel scheduling
|
|
methods and their resulting speedup. The code was parallelized by speculating
|
|
that each pixel could be rendered in parallel. The resulting parallel code was
|
|
then checked for correctness by using Intel® Thread Checker, which
|
|
pointed out where synchronization was needed. Minimal synchronization was then
|
|
inserted into the parallel code. The resulting parallel code exhibits good speedup.
|
|
</p>
|
|
|
|
<div class="changes">
|
|
<div class="h3-alike">System Requirements</div>
|
|
<input type="checkbox">
|
|
<div class="show-hide">
|
|
<p>
|
|
For the most up to date system requirements, see the <a href="http://software.intel.com/en-us/articles/intel-threading-building-blocks-release-notes">release notes.</a>
|
|
</p>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="changes">
|
|
<div class="h3-alike">Versions</div>
|
|
<input type="checkbox" checked="checked">
|
|
<div class="show-hide">
|
|
<dl>
|
|
<dt><b>serial</b>
|
|
<dd>Original sequential version.
|
|
<dt><b>tbb1d</b>
|
|
<dd>Parallel version that uses Intel® Threading Building Blocks (Intel® TBB) and blocked_range to parallelize
|
|
over tasks that are groups of scan-lines.
|
|
<ul>
|
|
<li>By default, this version uses one thread per available processor. To change this
|
|
default, set the TBB_NUM_THREADS environment variable to the desired number of threads before running.
|
|
<li>This version uses the preview feature: auto_range_partitioner. No grain size is provided to blocked_range.
|
|
The blocked_range class uses a default grain size of 1 when none is provided. However, the auto_range_partitioner
|
|
controls the amount of range splitting dynamically at runtime, resulting in sub-ranges of varying sizes.
|
|
</ul>
|
|
<dt><b>tbb</b>
|
|
<dd>Parallel version that uses Intel TBB and blocked_range2d to parallelize
|
|
over tasks that are rectangular sub-areas.
|
|
<ul>
|
|
<li>By default, this version uses one thread per available processor. To change this
|
|
default, set the TBB_NUM_THREADS environment variable to the desired number of threads before running.
|
|
<li>This version uses a reasonable task grain size by default. To change this default,
|
|
set the TBB_GRAINSIZE environment variable to the desired grain size before running.
|
|
The grain size corresponds to the number of pixels (in the X or Y direction, for a
|
|
rectangular sub-area) in each parallel task.
|
|
</ul>
|
|
</dl>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="changes">
|
|
<div class="h3-alike">Files</div>
|
|
<input type="checkbox" checked="checked">
|
|
<div class="show-hide">
|
|
<dl>
|
|
<dt><a href="src/main.cpp">src/main.cpp</a>
|
|
<dd>Main program which parses command line options and runs the raytracer.
|
|
<dt><a href="src/tachyon_video.cpp">src/tachyon_video.cpp</a>
|
|
<dd>Source code for GUI interfaces.
|
|
<dt><a href="src/trace.serial.cpp">src/trace.serial.cpp</a>
|
|
<dd>Source code for original sequential version of example.
|
|
<dt><a href="src/trace.tbb1d.cpp">src/trace.tbb1d.cpp</a>
|
|
<dd>Source code for Intel TBB blocked_range (scan-line) version of example.
|
|
<dt><a href="src/trace.tbb.cpp">src/trace.tbb.cpp</a>
|
|
<dd>Source code for Intel TBB blocked_range2d (rectangular sub-area) version of example.
|
|
<dt>(src/*.cpp)
|
|
<dd>Remainder of source code for example.
|
|
<dt>(src/*.h)
|
|
<dd>Remainder of include files for example.
|
|
<dt><a href="Makefile">Makefile</a>
|
|
<dd>Makefile for building the example.
|
|
</dl>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="changes">
|
|
<div class="h3-alike">Directories</div>
|
|
<input type="checkbox" checked="checked">
|
|
<div class="show-hide">
|
|
<dl>
|
|
<dt><a href="src/">src</a>
|
|
<dd>Contains source code and include files for the example.
|
|
<dt><a href="dat/">dat</a>
|
|
<dd>Contains data sets for running the example.
|
|
<dt><a href="msvs/">msvs</a>
|
|
<dd>Contains Microsoft* Visual Studio* workspace for building and running the example (Windows* systems only).
|
|
<dt><a href="xcode/">xcode</a>
|
|
<dd>Contains Xcode* IDE workspace for building and running the example (OS X* systems only).
|
|
</dl>
|
|
<p>For information about the minimum supported version of IDE, see <a href="http://software.intel.com/en-us/articles/intel-threading-building-blocks-release-notes">release notes.</a></p>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="changes">
|
|
<div class="h3-alike">Build instructions</div>
|
|
<input type="checkbox" checked="checked">
|
|
<div class="show-hide">
|
|
<p>General build directions can be found <a href="../../index.html">here</a>.</p>
|
|
<p>
|
|
For Windows* systems Microsoft* Visual Studio* projects are provided for each of the above example versions.
|
|
</p>
|
|
|
|
<p>
|
|
The Makefile supports the following build targets (in addition to the <a href="../../index.html">general</a> ones).
|
|
Here, <<i>version</i>> is one of the above versions of the example, i.e., {serial, tbb1d, tbb}.
|
|
</p>
|
|
<dl>
|
|
<dt><tt>make <<i>version</i>>[_debug]</tt>
|
|
<dd>Build and run a single version (release or debug).
|
|
Equivalent to 'make build_<<i>version</i>>[_debug] run_<<i>version</i>>'.
|
|
<dt><tt>make build_<<i>version</i>>[_debug]</tt>
|
|
<dd>Compile and link a single version (release or debug).
|
|
The resulting executable is left in the directory for the example.
|
|
<dt><tt>make run_<<i>version</i>></tt>
|
|
<dd>Run a single version previously produced by one of the above commands.
|
|
<dt><tt>make [(above options or targets)] DATASET={820spheres, balls, balls3, lattice, model2,
|
|
teapot, trypsin4pti}</tt>
|
|
<dd>Build and run as above, but run with the specified data set.
|
|
<dt><tt>make [(above options or targets)] ARGS=-D</tt>
|
|
<dd>Build and run as above, but run with disabled run-time display updating 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)] UI={con, gdi, d2d, x, mac}</tt>
|
|
<dd>Build and run as usual, but build with the specified GUI driver: console, GDI+*, Direct2D*, 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 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=d2d may offer superior
|
|
performance, but can only be used if the Microsoft* DirectX* SDK is installed on your system.
|
|
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=<<i>specify path to Direct Draw* SDK here</i>></tt>
|
|
<dd>If you experience ddraw.lib linking problems, specify the correct library directory via this option.
|
|
</dl>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="changes">
|
|
<div class="h3-alike">Usage</div>
|
|
<input type="checkbox" checked="checked">
|
|
<div class="show-hide">
|
|
<p>
|
|
Building via the above make commands, or via Visual Studio projects on Windows* systems, produces executable files
|
|
named <tt>tachyon.<<i>version</i>>.exe</tt>. To run these executables directly, use one or more of the following commands.
|
|
</p>
|
|
<dl>
|
|
<dt><tt>tachyon.<<i>version</i>> <i>-h</i></tt>
|
|
<dd>Prints the help for command line options
|
|
<dt><tt>tachyon.<<i>version</i>> [<i>dataset</i>=value] [<i>boundthresh</i>=value] [<i>no-display-updating</i>] [<i>nobounding</i>] [<i>silent</i>]</tt>
|
|
<dt><tt>tachyon.<<i>version</i>> [<i>dataset</i> [<i>boundthresh</i>]] [<i>no-display-updating</i>] [<i>nobounding</i>] [<i>silent</i>]</tt>
|
|
<dd><i>dataset</i> is the path/name of one of the *.dat files in the <a href="dat">dat</a> directory for the example.<br>
|
|
<i>boundthresh</i> is a bounding threshold value.<br>
|
|
<i>no-display-updating</i> - disable run-time display updating.<br>
|
|
<i>no-bounding</i> - disable bounding technique.<br>
|
|
<i>silent</i> - no output except elapsed time.<br>
|
|
<dt><tt>tachyon.<<i>version</i>> [<i>dataset</i>] [<i>no-display-updating</i>]</tt>
|
|
<dd>Run this version (release or debug), but run with disabled run-time display updating
|
|
for use in making performance measurements
|
|
<i>(strongly recommended when measuring performance or scalability; see note below)</i>.
|
|
<dt>To run a short version of this example, e.g., for use with Intel® Parallel Inspector:
|
|
<dd>Build a <i>debug</i> version of the <tt>tbb</tt> example with the GUI turned off
|
|
(e.g., <tt>make UI=con tbb_debug</tt>; see also the build directions above).
|
|
<br>Run it with a small dataset, e.g., <tt>tachyon.tbb.exe dat/820spheres.dat no-display-updating</tt>.
|
|
</dl>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="changes">
|
|
<div class="h3-alike">Keys</div>
|
|
<input type="checkbox" checked="checked">
|
|
<div class="show-hide">
|
|
<p>While running with the GUI display turned on the following keyboard keys can be used:</p>
|
|
<dl>
|
|
<dt><tt>ESC</tt>
|
|
<dd>Interrupt the rendering and exit
|
|
<dt><tt><i>Any key</i></tt>
|
|
<dd>Enable repetition of rendering after the pause. Press ESC to stop the application.
|
|
<dt><tt>Space</tt>
|
|
<dd>Toggle run-time display updating mode while rendering (see no-display-updating above).
|
|
<dt><tt>p</tt>
|
|
<dd>Holds the picture after rendering completion. Press 'p' again to continue.
|
|
</dl>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="changes">
|
|
<div class="h3-alike">Notes</div>
|
|
<input type="checkbox" checked="checked">
|
|
<div class="show-hide">
|
|
<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.
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
|
|
<br>
|
|
<a href="../index.html">Up to parent directory</a>
|
|
<hr>
|
|
<a name="copyright"></a>
|
|
<div class="changes">
|
|
<div class="h3-alike">Legal Information</div>
|
|
<input type="checkbox">
|
|
<div class="show-hide">
|
|
<p>
|
|
Intel and the Intel logo are trademarks of Intel Corporation in the U.S. and/or other countries.
|
|
<br>* Other names and brands may be claimed as the property of others.
|
|
<br>© 2016, Intel Corporation
|
|
</p>
|
|
|
|
<p>
|
|
The original source for this example is
|
|
Copyright (c) 1994-2008 John E. Stone
|
|
All rights reserved.
|
|
</p>
|
|
|
|
<p>
|
|
Redistribution and use in source and binary forms, with or without
|
|
modification, are permitted provided that the following conditions
|
|
are met:
|
|
<ol>
|
|
<li>Redistributions of source code must retain the above copyright
|
|
notice, this list of conditions and the following disclaimer.
|
|
<li>Redistributions in binary form must reproduce the above copyright
|
|
notice, this list of conditions and the following disclaimer in the
|
|
documentation and/or other materials provided with the distribution.
|
|
<li>The name of the author may not be used to endorse or promote products
|
|
derived from this software without specific prior written permission.
|
|
</ol>
|
|
</p>
|
|
|
|
<p>
|
|
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
|
|
OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
|
|
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
SUCH DAMAGE.
|
|
</p>
|
|
</div>
|
|
</div>
|
|
|
|
</body>
|
|
</html>
|