| /oneTBB/examples/parallel_for/polygon_overlay/ |
| H A D | README.md | 4 This example is a simple implementation of polygon overlay, as described in Parallelizing the [Poly… 6 The solution was implemented in three forms: 9 …in the solution map, if both polygons are duplicated (that is, if they both appear in more than on… 11 The only optimization in each solution is that the area of the generated sub-polygons are subtracte… 13 A word about the speedup of the submap case. One may get superlinear speedup in this case (for inst… 17 …in each map, then on average the number of intersections calculated is approximately 80,000 (400 *… 23 …in map1, start testing for intersection at the first p2 in map2 that intersected the last polygon … 25 …in the manner described in the paper above. That is, if we need `N` polygons, then `N` "boxes" are… 27 … program is that if the number of polygons in the source map is greater than the number of "boxes"… 49 * `--polys npolys` - number of polygons in each map.
|
| /oneTBB/doc/main/tbb_userguide/ |
| H A D | Parallelizing_Flow_Graph.rst | 14 edges. When a node in the graph receives a message, a task is spawned to 23 nodes in the graph. In this example, the sequence is created by a 24 function F. For each value in the sequence, G squares the value and H 26 adds them to a global sum. After all values in the sequence are 74 jar, are shared between ordered steps, it is not explicit in the graph. 80 The flow graph interface in the oneTBB library allows you to express 85 present in the graph. For example, in the first example above, perhaps 86 two different values might be squared in parallel, or the same value 87 might be squared and cubed in parallel. Likewise in the second example, 90 is legal to execute in parallel, but allows the runtime library to [all …]
|
| H A D | Cancellation_and_Nested_Parallelism.rst | 25 exception occurs. For example, consider the tree in the following 38 Suppose that the algorithm in C throws an exception and no node catches 43 #. Handle exception in C: 46 a. Capture exception in C. 49 b. Cancel tasks in C. 55 #. Handle exception in B: 58 a. Capture exception in B. 61 b. Cancel tasks in B and, by downwards propagation, in D. 67 #. Handle exception in A: 70 a. Capture exception in A. [all …]
|
| H A D | use_graph_reset.rst | 9 graph and its nodes may be left in an indeterminate state. For example, 10 in the code samples shown in :ref:`cancel_a_graph` the input 2 may be 11 left in a buffer. But even beyond remnants in the buffers, there are 13 can leave its nodes and edges in an indeterminate state. If you want to
|
| H A D | Using_Circular_Buffers.rst | 13 checking of whether an item is still in use is necessary. 16 The reason this works is that at most ``ntoken`` items can be in flight, 17 and items will be freed in the order that they were allocated. Hence by 19 item must have been freed from its previous use in the pipeline. If the 21 keep track of which buffers are currently in use, because buffers might 22 not be retired in the same order they were allocated.
|
| H A D | Mapping_Nodes2Tasks.rst | 8 the two node graph example in the previous section. The bodies of n and 14 there are no tasks executing in the graph. As with other ``wait_for_all`` 15 functions in oneTBB, the thread that calls ``wait_for_all`` is not spinning 16 idly during this time, but instead can join in executing other tasks 36 messages in the order that they arrive. When all tasks are complete, the 41 All execution in the flow graph happens asynchronously. The calls to 46 blocks, as it should, and even in this case the calling thread may be 51 execute all of the tasks that can be executed in parallel. If there are
|
| H A D | estimate_flow_graph_performance.rst | 8 However there are a few key points that can guide you in estimating the 15 .. rubric:: The Critical Path Limits the Scalability in a Dependence 27 in your graph if executed sequentially. Then let C be the time 29 this path cannot be overlapped even in a parallel execution. 30 Therefore, even if all other paths are executed in parallel with C, 39 .. rubric:: There is Overhead in Spawning a Node's Body as a Task 48 you have many fine-grained nodes in your flow graph, the impact of
|
| H A D | Working_on_the_Assembly_Line_pipeline.rst | 9 filters and each filter processes the data in some way. Given an 10 incoming stream of data, some of these filters can operate in parallel, 11 and others cannot. For example, in video processing, some operations on 44 - Square numerals in chunk 71 // Pointer to one past last character in sequence 73 // Pointer to one past last available byte in sequence. 90 // Pointer to one past last character in sequence 130 a serial in-order filter, each token must be processed serially in 131 order. In a parallel filter, multiple tokens can by processed in 155 serial in-order, or serial out-of-order. [all …]
|
| H A D | create_token_based_system.rst | 7 A more flexible solution to limit the number of messages in a flow graph 9 are available in the graph and a message will not be allowed to enter 33 first-in-first-out; that is, the inputs are joined together to form a 34 tuple in the order they are received. 110 back to the ``buffer_node``. This cycle in the flow graph allows the token 112 like in the previous sections, there will be at most four big objects in 113 the graph. There could be three big objects in the ``function_node`` and one 114 buffered in the ``input_node``, awaiting a token to be paired with. 127 Also, in our example above, the ``buffer_node`` was prefilled by a fixed 135 concurrency in the graph. [all …]
|
| H A D | When_Not_to_Use_Queues.rst | 7 Queues are widely used in parallel programs to buffer consumers from 14 first-in first-out order. 22 could take time until it pops the value, and in the meantime the 23 value (and whatever it references) becomes "cold" in cache. Or worse 30 do other work until a value shows up. It also tries to keep items hot in
|
| H A D | Bandwidth_and_Cache_Affinity_os.rst | 15 An alternative to restructuring that works in some cases is 25 - The data acted upon by the loop fits in cache. 33 available, the default scheduling in |full_name| 63 would be to declare it at a scope outside the iterative loop in 80 data set. The computation for the example is ``A[i]+=B[i]`` for ``i`` in 82 see quite this much variation in your code. The graph shows not much 84 dominates, resulting in little speedup. For large N, the data set is too 85 large to be carried in cache between loop invocations. The peak in the
|
| H A D | use_input_node.rst | 7 By default, an ``input_node`` is constructed in the inactive state: 24 // use it in calls to make_edge… 28 All ``input_node`` objects are constructed in the inactive state and usually 32 For example, you can use the code in :ref:`Data_Flow_Graph`. In that implementation, 33 the ``input_node`` is constructed in the inactive state and activated after 55 In general it is safest to create your ``input_node`` objects in the inactive 65 edges in reverse topological order; that is, make the edges at the 66 largest depth in the tree first, and work back to the shallowest edges.
|
| /oneTBB/doc/main/intro/ |
| H A D | limitations.rst | 13 …lizes oneTBB headers using the Intel(R) oneAPI DPC+/C+ Compiler may result in failure on Windows* … 18 **Limitation:** A static assert causes the compilation failures in oneTBB headers if the following … 28 **Limitation:** An application using Parallel STL algorithms in the ``libstdc++`` versions 9 and 10… 30 …CIES`` (in libstdc++ 9) or ``_GLIBCXX_USE_TBB_PAR_BACKEND`` (in libstdc++ 10) macro to zero before… 35 … Blocks (TBB) are installed in a system folder, such as ``/usr/lib64``, the application may fail t…
|
| H A D | Benefits.rst | 10 explained in the early sections of the Developer Guide. As your 12 are covered in advanced sections. 20 typical threading packages in the following ways: 25 Programming directly in terms of threads can be tedious and lead to 30 parallelism onto threads in a way that makes efficient use of 36 threading for asynchronous events in graphical user interfaces. As a 60 specify interfaces in terms of specific types or base classes. 64 Library (STL) is a good example of generic programming in which the 67 defined in terms of iterators on the sequence. The requirements on 82 Specification in terms of requirements on types enables the template to
|
| /oneTBB/doc/main/tbb_userguide/design_patterns/ |
| H A D | Local_Serializer.rst | 31 - Operations associated with a certain object must be performed in 47 Always keep an item in flight if possible. If no item is in flight 49 item onto the FIFO. When the current item in flight completes, pop 50 another item from the FIFO and put it in flight. 55 number of items waiting and in flight. The example explains the 56 accounting in detail. 66 to implement local serialization in addition to priorities. It 86 the three constraints in the following table are met. 109 implementation of ``EnqueueWork`` packages the functor in a 188 Step 2 could be done after step 3 in some contexts to increase [all …]
|
| /oneTBB/python/ |
| H A D | README.md | 4 It is a preview Python* module which unlocks opportunities for additional performance in 9 standard library or libraries like Dask or Joblib (used either in multi-threading or multi-processi… 10 execute tasks calling compute-intensive functions of Numpy/Scipy/Sklearn/PyDAAL which in turn are 14 …tching technique implemented in class Monkey, no source code change is needed in order to enable t… 33 - `pydoc tbb` - Read built-in documentation for Python interfaces. 34 …- `python3 -m tbb your_script.py` - Run your_script.py in context of `with tbb.Monkey():` when one… 35 … tbb --ipc your_script.py` - Run your_script.py in context of `with tbb.Monkey():` when oneTBB ena…
|
| /oneTBB/cmake/ |
| H A D | vars_utils.cmake | 4 # you may not use this file except in compliance with the License. 9 # Unless required by applicable law or agreed to in writing, software 18 set(TBB_VARS_TEMPLATE "windows/env/vars.bat.in") 20 set(TBB_VARS_TEMPLATE "mac/env/vars.sh.in") 22 set(TBB_VARS_TEMPLATE "linux/env/vars.sh.in") 26 string(REPLACE ".in" "" TBB_VARS_NAME ${TBB_VARS_TEMPLATE_NAME})
|
| H A D | config_generation.cmake | 4 # you may not use this file except in compliance with the License. 9 # Unless required by applicable law or agreed to in writing, software 66 …configure_file(${_tbb_gen_cfg_path}/../integration/pkg-config/tbb.pc.in ${config_install_dir}/tbb.… 70 …configure_file(${_tbb_gen_cfg_path}/../integration/pkg-config/tbb.pc.in ${config_install_dir}/tbb3… 81 …configure_file(${_tbb_gen_cfg_path}/../integration/pkg-config/tbb.pc.in ${config_install_dir}/tbb.… 123 …configure_file(${_tbb_gen_cfg_path}/../integration/pkg-config/tbb.pc.in ${config_install_dir}/tbb.… 127 …configure_file(${_tbb_gen_cfg_path}/../integration/pkg-config/tbb.pc.in ${config_install_dir}/tbb3… 140 …configure_file(${_tbb_gen_cfg_path}/templates/TBBConfig.cmake.in ${config_install_dir}/TBBConfig.c… 141 …configure_file(${_tbb_gen_cfg_path}/templates/TBBConfigVersion.cmake.in ${config_install_dir}/TBBC…
|
| /oneTBB/examples/concurrent_priority_queue/shortpath/ |
| H A D | README.md | 4 It is parameterized by `N`, a number of nodes, and a start and end node in `[0..N)`. A graph is gen… 6 …in that it needs to add nodes back to the open set when the `g` estimate (shortest path from start… 8 …er, keeping the `f` estimate and using `concurrent_priority_queue` results in much better performa… 12 … generated graph follows a pattern in which the closer two pairs of node ids are together, the few… 34 * `N` - number of nodes in graph.
|
| /oneTBB/test/common/ |
| H A D | doctest.h | 1230 *stream << String(in, in[N - 1] ? N : N - 1); 3692 : String(in, strlen(in)) {} 3972 if (in) { *stream << in; } 3985 String toString(const char* in) { return String("\"") + (in ? in : "{null string}") + "\""; } 3993 String toString(String in) { return in; } 3999 String toString(float in) { return toStreamLit(in); } 4000 String toString(double in) { return toStreamLit(in); } 4006 String toString(short in) { return toStreamLit(in); } 4008 String toString(signed in) { return toStreamLit(in); } 4009 String toString(unsigned in) { return toStreamLit(in); } [all …]
|
| /oneTBB/ |
| H A D | LICENSE.txt | 35 "Work" shall mean the work of authorship, whether in Source or 37 copyright notice that is included in or attached to the work 38 (an example is provided in the Appendix below). 71 Work and such Derivative Works in Source or Object form. 90 Work or Derivative Works thereof in any medium, with or without 91 modifications, and in Source or Object form, provided that You 100 (c) You must retain, in the Source form of any Derivative Works 128 the conditions stated in this License. 144 agreed to in writing, Licensor provides the Work (and each 183 the brackets!) The text should be enclosed in the appropriate [all …]
|
| H A D | third-party-programs.txt | 4 contained in the Intel software and their required notices and/or license terms. 23 2. Redistributions in binary form must reproduce the above copyright 24 notice, this list of conditions and the following disclaimer in the 68 Redistribution and use in source and binary forms, with or without 74 2. Redistributions in binary form must reproduce the above copyright 75 notice, this list of conditions and the following disclaimer in the 100 Redistribution and use in source and binary forms, with or without 106 * Redistributions in binary form must reproduce the above 108 in the documentation and/or other materials provided with the 127 4. Mateusz Kwiatkowski Workaround for bug 62258 in libstdc++ [all …]
|
| /oneTBB/doc/main/reference/ |
| H A D | reference.rst | 14 It also describes features that are not included in the oneTBB specification. 34 - It may have limited or no support in tools such as correctness analyzers, profilers and debuggers. 38 A preview feature is subject to change in future. It might be removed or significantly 39 altered in future releases. Changes to a preview feature do NOT require 40 usual deprecation and removal process. Therefore, using preview features in production code
|
| /oneTBB/examples/getting_started/sub_string_finder/ |
| H A D | README.md | 2 An example that uses the `parallel_for` template in a substring matching program. The [oneAPI Threa… 4 …in a string, the program displays the length of the largest matching substring elsewhere in the st… 13 * `make sub_string_finder_simple` - builds the example as it appears in the Get Started Guide.
|
| /oneTBB/doc/ |
| H A D | Doxyfile.in | 113 # used to form the text in various listings. Each string in this list, if found 149 # before files name in the file list and in the header files. If set to NO the 317 # be prevented in individual cases by putting a % sign in front of the word or 459 # locally in source files will be included in the documentation. If set to NO, 467 # which are defined in the implementation section but not in the interface are 1192 # style sheet in the list overrules the setting of the previous ones in the 1684 # bitmaps for formulas in the HTML output, but not in the Makefile that is 1700 # trees in general. 1759 # style sheet in the list overrules the setting of the previous ones in the 1853 # trees in general. [all …]
|