166 lines
9.7 KiB
XML
166 lines
9.7 KiB
XML
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
|
|
<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.9.1" xml:lang="en-US">
|
|
<compounddef id="release-3-8-0" kind="page">
|
|
<compoundname>release-3-8-0</compoundname>
|
|
<title>Release 3.8.0 (2024/10/02)</title>
|
|
<tableofcontents>
|
|
<tocsect>
|
|
<name>Download</name>
|
|
<reference>release-3-8-0_1release-3-8-0_download</reference>
|
|
</tocsect>
|
|
<tocsect>
|
|
<name>System Requirements</name>
|
|
<reference>release-3-8-0_1release-3-8-0_system_requirements</reference>
|
|
</tocsect>
|
|
<tocsect>
|
|
<name>Release Summary</name>
|
|
<reference>release-3-8-0_1release-3-8-0_summary</reference>
|
|
</tocsect>
|
|
<tocsect>
|
|
<name>New Features</name>
|
|
<reference>release-3-8-0_1release-3-8-0_new_features</reference>
|
|
<tableofcontents>
|
|
<tocsect>
|
|
<name>Taskflow Core</name>
|
|
<reference>release-3-8-0_1release-3-8-0_taskflow_core</reference>
|
|
</tocsect>
|
|
<tocsect>
|
|
<name>Utilities</name>
|
|
<reference>release-3-8-0_1release-3-8-0_utilities</reference>
|
|
</tocsect>
|
|
</tableofcontents>
|
|
</tocsect>
|
|
<tocsect>
|
|
<name>Bug Fixes</name>
|
|
<reference>release-3-8-0_1release-3-8-0_bug_fixes</reference>
|
|
</tocsect>
|
|
<tocsect>
|
|
<name>Breaking Changes</name>
|
|
<reference>release-3-8-0_1release-3-8-0_breaking_changes</reference>
|
|
</tocsect>
|
|
<tocsect>
|
|
<name>Documentation</name>
|
|
<reference>release-3-8-0_1release-3-8-0_documentation</reference>
|
|
</tocsect>
|
|
<tocsect>
|
|
<name>Miscellaneous Items</name>
|
|
<reference>release-3-8-0_1release-3-8-0_miscellaneous_items</reference>
|
|
</tocsect>
|
|
</tableofcontents>
|
|
<briefdescription>
|
|
</briefdescription>
|
|
<detaileddescription>
|
|
<para>This release includes several new changes, such as exception support, improved scheduling algorithms,</para>
|
|
<sect1 id="release-3-8-0_1release-3-8-0_download">
|
|
<title>Download</title>
|
|
<para>Taskflow 3.8.0 can be downloaded from <ulink url="https://github.com/taskflow/taskflow/releases/tag/v3.8.0">here</ulink>.</para>
|
|
</sect1>
|
|
<sect1 id="release-3-8-0_1release-3-8-0_system_requirements">
|
|
<title>System Requirements</title>
|
|
<para>To use Taskflow v3.8.0, you need a compiler that supports C++17:</para>
|
|
<para><itemizedlist>
|
|
<listitem><para>GNU C++ Compiler at least v8.4 with -std=c++17 </para>
|
|
</listitem>
|
|
<listitem><para>Clang C++ Compiler at least v6.0 with -std=c++17 </para>
|
|
</listitem>
|
|
<listitem><para>Microsoft Visual Studio at least v19.27 with /std:c++17 </para>
|
|
</listitem>
|
|
<listitem><para>AppleClang Xcode Version at least v12.0 with -std=c++17 </para>
|
|
</listitem>
|
|
<listitem><para>Nvidia CUDA Toolkit and Compiler (nvcc) at least v11.1 with -std=c++17 </para>
|
|
</listitem>
|
|
<listitem><para>Intel C++ Compiler at least v19.0.1 with -std=c++17 </para>
|
|
</listitem>
|
|
<listitem><para>Intel DPC++ Clang Compiler at least v13.0.0 with -std=c++17</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
Taskflow works on Linux, Windows, and Mac OS X.</para>
|
|
<para><simplesect kind="note"><para>Although Taskflow supports primarily C++17, you can enable C++20 compilation through <computeroutput>-std=c++20</computeroutput> to achieve better performance due to new C++20 features.</para>
|
|
</simplesect>
|
|
</para>
|
|
</sect1>
|
|
<sect1 id="release-3-8-0_1release-3-8-0_summary">
|
|
<title>Release Summary</title>
|
|
<para>This releases (1) enhances the scheduling performance through C++20 atomic notification and a bounded queue strategy and (2) revised the semaphore model for better runtime control.</para>
|
|
<para><simplesect kind="note"><para>When compiling Taskflow with C++20, applications should see improved performance due to C++20 atomic wait and notification.</para>
|
|
</simplesect>
|
|
</para>
|
|
</sect1>
|
|
<sect1 id="release-3-8-0_1release-3-8-0_new_features">
|
|
<title>New Features</title>
|
|
<sect2 id="release-3-8-0_1release-3-8-0_taskflow_core">
|
|
<title>Taskflow Core</title>
|
|
<para><itemizedlist>
|
|
<listitem><para>Enhanced the core scheduling algorithm using a new bounded queue strategy</para>
|
|
</listitem><listitem><para>Enhanced the core scheduling performance using C++20 atomic notification</para>
|
|
</listitem></itemizedlist>
|
|
</para>
|
|
<para><programlisting filename=".shell-session"><codeline><highlight class="normal">#<sp/>compile<sp/>your<sp/>taskflow<sp/>program<sp/>with<sp/>C++20<sp/>enabled</highlight></codeline>
|
|
<codeline><highlight class="normal">~$<sp/>g++<sp/>-std=c++20<sp/>my_taskflow.cpp<sp/></highlight></codeline>
|
|
</programlisting></para>
|
|
<para><itemizedlist>
|
|
<listitem><para>Revised the semaphore programming model for better runtime control through <ref refid="classtf_1_1Runtime" kindref="compound">tf::Runtime</ref></para>
|
|
</listitem></itemizedlist>
|
|
</para>
|
|
<para><programlisting filename=".cpp"><codeline><highlight class="normal"><ref refid="classtf_1_1Executor" kindref="compound">tf::Executor</ref><sp/>executor(8);<sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>create<sp/>an<sp/>executor<sp/>of<sp/>8<sp/>workers</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline><highlight class="normal"><ref refid="classtf_1_1Taskflow" kindref="compound">tf::Taskflow</ref><sp/>taskflow;</highlight></codeline>
|
|
<codeline><highlight class="normal"><ref refid="classtf_1_1Semaphore" kindref="compound">tf::Semaphore</ref><sp/>semaphore(1);<sp/></highlight><highlight class="comment">//<sp/>create<sp/>a<sp/>semaphore<sp/>with<sp/>initial<sp/>count<sp/>1</highlight><highlight class="normal"></highlight></codeline>
|
|
<codeline><highlight class="normal"></highlight><highlight class="keywordflow">for</highlight><highlight class="normal">(</highlight><highlight class="keywordtype">size_t</highlight><highlight class="normal"><sp/>i=0;<sp/>i<1000;<sp/>i++)<sp/>{</highlight></codeline>
|
|
<codeline><highlight class="normal"><sp/><sp/>taskflow.<ref refid="classtf_1_1FlowBuilder_1a60d7a666cab71ecfa3010b2efb0d6b57" kindref="member">emplace</ref>([&](<ref refid="classtf_1_1Runtime" kindref="compound">tf::Runtime</ref>&<sp/>rt){<sp/></highlight></codeline>
|
|
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/>rt.<ref refid="classtf_1_1Runtime_1ada6b02ea097968de011bb3825a7ec48b" kindref="member">acquire</ref>(semaphore);</highlight></codeline>
|
|
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="cpp/io/basic_ostream" kindref="compound" external="/home/thuang295/Code/taskflow/doxygen/cppreference-doxygen-web.tag.xml">std::cout</ref><sp/><<<sp/></highlight><highlight class="stringliteral">"critical<sp/>section<sp/>here<sp/>(one<sp/>worker<sp/>here<sp/>only)\n"</highlight><highlight class="normal">;<sp/></highlight></codeline>
|
|
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/>critical_section();</highlight></codeline>
|
|
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/>rt.<ref refid="classtf_1_1Runtime_1acc36e4d62a17e19e07f0c82a4c5f1d95" kindref="member">release</ref>(semaphore);</highlight></codeline>
|
|
<codeline><highlight class="normal"><sp/><sp/>});</highlight></codeline>
|
|
<codeline><highlight class="normal">}</highlight></codeline>
|
|
<codeline><highlight class="normal">executor.run(taskflow).wait();</highlight></codeline>
|
|
</programlisting></para>
|
|
<para><itemizedlist>
|
|
<listitem><para>Enhanced async-tasking performance through TLS</para>
|
|
</listitem><listitem><para>Added async-task benchmark</para>
|
|
</listitem><listitem><para>Added non-blocking notifier and atomic notifier modules</para>
|
|
</listitem><listitem><para>Added <ref refid="classtf_1_1BoundedTaskQueue" kindref="compound">tf::BoundedTaskQueue</ref> and <ref refid="classtf_1_1UnboundedTaskQueue" kindref="compound">tf::UnboundedTaskQueue</ref></para>
|
|
</listitem><listitem><para>Added tf::Freelist module to replace the centralized overflow queue</para>
|
|
</listitem><listitem><para>Removed the redundant exception handling in object pool</para>
|
|
</listitem></itemizedlist>
|
|
</para>
|
|
</sect2>
|
|
<sect2 id="release-3-8-0_1release-3-8-0_utilities">
|
|
<title>Utilities</title>
|
|
</sect2>
|
|
</sect1>
|
|
<sect1 id="release-3-8-0_1release-3-8-0_bug_fixes">
|
|
<title>Bug Fixes</title>
|
|
<para><itemizedlist>
|
|
<listitem><para>Fixed the compilation error for not finding the C++ atomic library</para>
|
|
</listitem><listitem><para>Fixed the missing <ref refid="classtf_1_1Runtime" kindref="compound">tf::Runtime</ref> in asynchronous tasking</para>
|
|
</listitem><listitem><para>Fixed the non-heterogeneity of <ref refid="classtf_1_1FlowBuilder_1a3b132bd902331a11b04b4ad66cf8bf77" kindref="member">tf::Taskflow::for_each_index</ref></para>
|
|
</listitem><listitem><para>Fixed the bug of UUID unit test in a multithreaded environment</para>
|
|
</listitem></itemizedlist>
|
|
</para>
|
|
</sect1>
|
|
<sect1 id="release-3-8-0_1release-3-8-0_breaking_changes">
|
|
<title>Breaking Changes</title>
|
|
<para><itemizedlist>
|
|
<listitem><para>Removed the support of object pool by default</para>
|
|
</listitem><listitem><para>Removed the support of prioritized tasking due to inconsistency with work stealing</para>
|
|
</listitem></itemizedlist>
|
|
</para>
|
|
</sect1>
|
|
<sect1 id="release-3-8-0_1release-3-8-0_documentation">
|
|
<title>Documentation</title>
|
|
<para><itemizedlist>
|
|
<listitem><para>Revised <ref refid="LimitTheMaximumConcurrency" kindref="compound">Limit the Maximum Concurrency</ref></para>
|
|
</listitem><listitem><para>Removed Prioritized Tasking</para>
|
|
</listitem><listitem><para>Fixed typos in multiple pages</para>
|
|
</listitem></itemizedlist>
|
|
</para>
|
|
</sect1>
|
|
<sect1 id="release-3-8-0_1release-3-8-0_miscellaneous_items">
|
|
<title>Miscellaneous Items</title>
|
|
<para>Please do not hesitate to contact <ulink url="https://tsung-wei-huang.github.io/">Dr. Tsung-Wei Huang</ulink> if you intend to collaborate with us on using Taskflow in your scientific computing projects. </para>
|
|
</sect1>
|
|
</detaileddescription>
|
|
<location file="doxygen/releases/release-3.8.0.dox"/>
|
|
</compounddef>
|
|
</doxygen>
|