├── .appveyor.yml ├── .gitattributes ├── .gitignore ├── .travis.yml ├── CHANGES ├── CMakeLists.txt ├── Doxyfile ├── LICENSE ├── Makefile.old ├── README ├── README.md ├── build ├── AIX.gcc.inc ├── AIX.inc ├── BSD.clang.inc ├── BSD.inc ├── FreeBSD.clang.inc ├── FreeBSD.gcc.inc ├── FreeBSD.inc ├── Makefile.rml ├── Makefile.tbb ├── Makefile.tbbbind ├── Makefile.tbbmalloc ├── Makefile.tbbproxy ├── Makefile.test ├── OpenBSD.clang.inc ├── OpenBSD.inc ├── SunOS.gcc.inc ├── SunOS.inc ├── SunOS.suncc.inc ├── android.clang.inc ├── android.gcc.inc ├── android.icc.inc ├── android.inc ├── android.linux.inc ├── android.linux.launcher.sh ├── android.macos.inc ├── android.windows.inc ├── big_iron.inc ├── build.py ├── codecov.txt ├── common.inc ├── common_rules.inc ├── detect.js ├── generate_tbbvars.bat ├── generate_tbbvars.sh ├── index.html ├── ios.clang.inc ├── ios.macos.inc ├── linux.clang.inc ├── linux.gcc.inc ├── linux.icc.inc ├── linux.inc ├── linux.pathcc.inc ├── linux.xl.inc ├── macos.clang.inc ├── macos.gcc.inc ├── macos.icc.inc ├── macos.inc ├── mic.icc.inc ├── mic.linux.inc ├── mic.linux.launcher.sh ├── mic.offload.inc ├── mingw_cross_toolchain.cmake ├── suncc.map.pause ├── test_launcher.bat ├── test_launcher.sh ├── version_info_aix.sh ├── version_info_android.sh ├── version_info_linux.sh ├── version_info_macos.sh ├── version_info_sunos.sh ├── version_info_windows.js ├── version_string.ver.in ├── vs2013 │ ├── index.html │ ├── makefile.sln │ ├── tbb.vcxproj │ ├── tbbmalloc.vcxproj │ └── tbbmalloc_proxy.vcxproj ├── windows.cl.inc ├── windows.gcc.inc ├── windows.icl.inc └── windows.inc ├── cmake ├── README.rst └── templates │ ├── TBBConfig.cmake.in │ ├── TBBConfigInternal.cmake.in │ └── TBBConfigVersion.cmake.in ├── doc ├── Release_Notes.txt └── copyright_brand_disclaimer_doxygen.txt ├── examples ├── GettingStarted │ ├── index.html │ └── sub_string_finder │ │ ├── Makefile │ │ ├── Makefile.windows │ │ ├── msvs │ │ ├── sub_string_finder.sln │ │ ├── sub_string_finder.vcxproj │ │ ├── sub_string_finder_extended.vcxproj │ │ └── sub_string_finder_pretty.vcxproj │ │ ├── readme.html │ │ ├── sub_string_finder.cpp │ │ ├── sub_string_finder_extended.cpp │ │ ├── sub_string_finder_pretty.cpp │ │ └── xcode │ │ └── sub_string_finder.xcodeproj │ │ └── project.pbxproj ├── Makefile ├── common │ ├── copy_libraries.bat │ ├── examples-common.inc │ ├── gui │ │ ├── Makefile.gmake │ │ ├── Makefile.win │ │ ├── convideo.cpp │ │ ├── d2dvideo.cpp │ │ ├── dxcheck.bat │ │ ├── gdivideo.cpp │ │ ├── macvideo.cpp │ │ ├── video.h │ │ ├── winvideo.h │ │ ├── xcode │ │ │ └── tbbExample │ │ │ │ ├── OpenGLView.h │ │ │ │ ├── OpenGLView.m │ │ │ │ ├── PkgInfo │ │ │ │ ├── en.lproj │ │ │ │ ├── InfoPlist.strings │ │ │ │ ├── MainMenu.nib │ │ │ │ └── MainMenu.xib │ │ │ │ ├── iOS.storyboard │ │ │ │ ├── main.m │ │ │ │ ├── tbbAppDelegate.h │ │ │ │ ├── tbbAppDelegate.m │ │ │ │ ├── tbbExample-Info.ios.plist │ │ │ │ ├── tbbExample-Info.plist │ │ │ │ └── tbbExample-Prefix.pch │ │ └── xvideo.cpp │ ├── index.html │ ├── toolset.props │ └── utility │ │ ├── fast_random.h │ │ ├── get_default_num_threads.h │ │ └── utility.h ├── concurrent_hash_map │ ├── count_strings │ │ ├── Makefile │ │ ├── Makefile.windows │ │ ├── count_strings.cpp │ │ ├── msvs │ │ │ ├── count_strings.sln │ │ │ └── count_strings.vcxproj │ │ ├── readme.html │ │ └── xcode │ │ │ └── count_strings.xcodeproj │ │ │ └── project.pbxproj │ └── index.html ├── concurrent_priority_queue │ ├── index.html │ └── shortpath │ │ ├── Makefile │ │ ├── Makefile.windows │ │ ├── msvs │ │ ├── shortpath.sln │ │ └── shortpath.vcxproj │ │ ├── readme.html │ │ ├── shortpath.cpp │ │ └── xcode │ │ └── shortpath.xcodeproj │ │ └── project.pbxproj ├── graph │ ├── binpack │ │ ├── Makefile │ │ ├── Makefile.windows │ │ ├── binpack.cpp │ │ ├── msvs │ │ │ ├── binpack.sln │ │ │ └── binpack.vcxproj │ │ ├── readme.html │ │ └── xcode │ │ │ └── binpack.xcodeproj │ │ │ └── project.pbxproj │ ├── cholesky │ │ ├── Makefile │ │ ├── Makefile.windows │ │ ├── cholesky.cpp │ │ ├── init.cpp │ │ ├── msvs │ │ │ ├── cholesky.sln │ │ │ └── cholesky.vcxproj │ │ ├── readme.html │ │ └── xcode │ │ │ └── cholesky.xcodeproj │ │ │ ├── project.pbxproj │ │ │ └── xcshareddata │ │ │ └── xcschemes │ │ │ └── Cholesky.xcscheme │ ├── dining_philosophers │ │ ├── Makefile │ │ ├── Makefile.windows │ │ ├── dining_philosophers.cpp │ │ ├── msvs │ │ │ ├── dining_philosophers.sln │ │ │ └── dining_philosophers.vcxproj │ │ ├── readme.html │ │ └── xcode │ │ │ └── dining_philosophers.xcodeproj │ │ │ └── project.pbxproj │ ├── fgbzip2 │ │ ├── Makefile │ │ ├── Makefile.windows │ │ ├── blocksort.cpp │ │ ├── bzlib.cpp │ │ ├── bzlib.h │ │ ├── bzlib_private.h │ │ ├── compress.cpp │ │ ├── crctable.cpp │ │ ├── decompress.cpp │ │ ├── fgbzip2.cpp │ │ ├── huffman.cpp │ │ ├── msvs │ │ │ ├── fgbzip2.sln │ │ │ └── fgbzip2.vcxproj │ │ ├── randtable.cpp │ │ ├── readme.html │ │ └── xcode │ │ │ └── fgbzip2.xcodeproj │ │ │ └── project.pbxproj │ ├── index.html │ ├── logic_sim │ │ ├── D_latch.h │ │ ├── Makefile │ │ ├── Makefile.windows │ │ ├── basics.h │ │ ├── four_bit_adder.h │ │ ├── msvs │ │ │ ├── logic_sim.sln │ │ │ └── logic_sim.vcxproj │ │ ├── one_bit_adder.h │ │ ├── readme.html │ │ ├── test_all.cpp │ │ └── two_bit_adder.h │ ├── som │ │ ├── Makefile │ │ ├── Makefile.windows │ │ ├── msvs │ │ │ ├── som.sln │ │ │ └── som.vcxproj │ │ ├── readme.html │ │ ├── som.cpp │ │ ├── som.h │ │ ├── som_graph.cpp │ │ └── xcode │ │ │ └── som.xcodeproj │ │ │ └── project.pbxproj │ └── stereo │ │ ├── Makefile │ │ ├── Makefile.windows │ │ ├── imageEffects.cl │ │ ├── lodepng.cpp │ │ ├── lodepng.h │ │ ├── msvs │ │ ├── stereo.sln │ │ └── stereo.vcxproj │ │ ├── readme.html │ │ ├── stereo.cpp │ │ ├── utils.h │ │ └── xcode │ │ └── stereo.xcodeproj │ │ └── project.pbxproj ├── index.html ├── parallel_do │ ├── index.html │ └── parallel_preorder │ │ ├── Graph.cpp │ │ ├── Graph.h │ │ ├── Makefile │ │ ├── Makefile.windows │ │ ├── Matrix.h │ │ ├── main.cpp │ │ ├── msvs │ │ ├── parallel_preorder.sln │ │ └── parallel_preorder.vcxproj │ │ ├── parallel_preorder.cpp │ │ ├── readme.html │ │ └── xcode │ │ └── parallel_preorder.xcodeproj │ │ └── project.pbxproj ├── parallel_for │ ├── game_of_life │ │ ├── Makefile │ │ ├── Makefile.windows │ │ ├── msvs │ │ │ ├── Game_of_life.sln │ │ │ ├── Game_of_life.vcxproj │ │ │ ├── app.ico │ │ │ ├── app.rc │ │ │ └── resource.h │ │ ├── readme.html │ │ ├── src │ │ │ ├── AssemblyInfo.cpp │ │ │ ├── Board.h │ │ │ ├── Evolution.cpp │ │ │ ├── Evolution.h │ │ │ ├── Form1.h │ │ │ ├── Game_of_life.cpp │ │ │ └── Update_state.cpp │ │ └── xcode │ │ │ └── game_of_life.xcodeproj │ │ │ └── project.pbxproj │ ├── index.html │ ├── polygon_overlay │ │ ├── Makefile │ │ ├── Makefile.windows │ │ ├── msvs │ │ │ ├── polygon_overlay.sln │ │ │ ├── pover.rc │ │ │ ├── pover.vcxproj │ │ │ └── resource.h │ │ ├── polymain.cpp │ │ ├── polymain.h │ │ ├── polyover.cpp │ │ ├── polyover.h │ │ ├── pover_global.h │ │ ├── pover_video.cpp │ │ ├── pover_video.h │ │ ├── readme.html │ │ ├── rpolygon.h │ │ ├── speedup.gif │ │ └── xcode │ │ │ └── polygon_overlay.xcodeproj │ │ │ ├── project.pbxproj │ │ │ └── xcshareddata │ │ │ └── xcschemes │ │ │ ├── tbbExample.ios.xcscheme │ │ │ └── tbbExample.xcscheme │ ├── seismic │ │ ├── Makefile │ │ ├── Makefile.windows │ │ ├── main.cpp │ │ ├── msvs │ │ │ ├── SeismicSimulation.ico │ │ │ ├── SeismicSimulation.rc │ │ │ ├── SeismicSimulation.vcxproj │ │ │ ├── resource.h │ │ │ ├── seismic.sln │ │ │ └── small.ico │ │ ├── readme.html │ │ ├── seismic_video.cpp │ │ ├── seismic_video.h │ │ ├── universe.cpp │ │ ├── universe.h │ │ └── xcode │ │ │ └── seismic.xcodeproj │ │ │ ├── project.pbxproj │ │ │ └── xcshareddata │ │ │ └── xcschemes │ │ │ ├── tbbExample.ios.xcscheme │ │ │ └── tbbExample.xcscheme │ └── tachyon │ │ ├── Makefile │ │ ├── Makefile.windows │ │ ├── dat │ │ ├── 820spheres.dat │ │ ├── balls.dat │ │ ├── balls3.dat │ │ ├── lattice.dat │ │ ├── model2.dat │ │ ├── teapot.dat │ │ └── trypsin4pti.dat │ │ ├── msvs │ │ ├── gui.ico │ │ ├── gui.rc │ │ ├── resource.h │ │ ├── small.ico │ │ ├── tachyon.serial.vcxproj │ │ ├── tachyon.sln │ │ ├── tachyon.tbb.vcxproj │ │ ├── tachyon.tbb1d.vcxproj │ │ ├── tachyon.vcxproj │ │ └── uwp │ │ │ ├── App.xaml │ │ │ ├── App.xaml.cpp │ │ │ ├── App.xaml.h │ │ │ ├── Assets │ │ │ ├── Logo.png │ │ │ ├── SmallLogo.png │ │ │ ├── SplashScreen.png │ │ │ └── StoreLogo.png │ │ │ ├── Common │ │ │ └── StandardStyles.xaml │ │ │ ├── DirectXBase.cpp │ │ │ ├── DirectXBase.h │ │ │ ├── DirectXPage.xaml │ │ │ ├── DirectXPage.xaml.cpp │ │ │ ├── DirectXPage.xaml.h │ │ │ ├── Package.appxmanifest │ │ │ ├── copy_libraries_and_assets.bat │ │ │ ├── pch.h │ │ │ ├── tbbTachyon.sln │ │ │ ├── tbbTachyon.vcxproj │ │ │ ├── tbbTachyon.vcxproj.filters │ │ │ ├── tbbTachyonRenderer.cpp │ │ │ └── tbbTachyonRenderer.h │ │ ├── readme.html │ │ ├── src │ │ ├── api.cpp │ │ ├── api.h │ │ ├── apigeom.cpp │ │ ├── apitrigeom.cpp │ │ ├── apitrigeom.h │ │ ├── bndbox.cpp │ │ ├── bndbox.h │ │ ├── box.cpp │ │ ├── box.h │ │ ├── camera.cpp │ │ ├── camera.h │ │ ├── coordsys.cpp │ │ ├── coordsys.h │ │ ├── cylinder.cpp │ │ ├── cylinder.h │ │ ├── extvol.cpp │ │ ├── extvol.h │ │ ├── global.cpp │ │ ├── global.h │ │ ├── grid.cpp │ │ ├── grid.h │ │ ├── imageio.cpp │ │ ├── imageio.h │ │ ├── imap.cpp │ │ ├── imap.h │ │ ├── intersect.cpp │ │ ├── intersect.h │ │ ├── jpeg.cpp │ │ ├── jpeg.h │ │ ├── light.cpp │ │ ├── light.h │ │ ├── machine.h │ │ ├── macros.h │ │ ├── main.cpp │ │ ├── objbound.cpp │ │ ├── objbound.h │ │ ├── parse.cpp │ │ ├── parse.h │ │ ├── plane.cpp │ │ ├── plane.h │ │ ├── ppm.cpp │ │ ├── ppm.h │ │ ├── pthread.cpp │ │ ├── pthread_w.h │ │ ├── quadric.cpp │ │ ├── quadric.h │ │ ├── render.cpp │ │ ├── render.h │ │ ├── ring.cpp │ │ ├── ring.h │ │ ├── shade.cpp │ │ ├── shade.h │ │ ├── sphere.cpp │ │ ├── sphere.h │ │ ├── tachyon_video.cpp │ │ ├── tachyon_video.h │ │ ├── texture.cpp │ │ ├── texture.h │ │ ├── tgafile.cpp │ │ ├── tgafile.h │ │ ├── trace.h │ │ ├── trace.serial.cpp │ │ ├── trace.simple.cpp │ │ ├── trace.tbb.cpp │ │ ├── trace.tbb1d.cpp │ │ ├── trace_rest.cpp │ │ ├── triangle.cpp │ │ ├── triangle.h │ │ ├── types.h │ │ ├── ui.cpp │ │ ├── ui.h │ │ ├── util.cpp │ │ ├── util.h │ │ ├── vector.cpp │ │ ├── vector.h │ │ ├── vol.cpp │ │ └── vol.h │ │ └── xcode │ │ └── tachyon.xcodeproj │ │ ├── project.pbxproj │ │ └── xcshareddata │ │ └── xcschemes │ │ ├── tachyon.serial.xcscheme │ │ ├── tachyon.tbb.ios.xcscheme │ │ ├── tachyon.tbb.xcscheme │ │ └── tachyon.tbb1d.xcscheme ├── parallel_reduce │ ├── convex_hull │ │ ├── Makefile │ │ ├── Makefile.windows │ │ ├── convex_hull.h │ │ ├── convex_hull_bench.cpp │ │ ├── convex_hull_sample.cpp │ │ ├── msvs │ │ │ ├── convex_hull.sln │ │ │ ├── convex_hull_benchmark.vcxproj │ │ │ └── convex_hull_sample.vcxproj │ │ ├── readme.html │ │ └── xcode │ │ │ └── convex_hull.xcodeproj │ │ │ └── project.pbxproj │ ├── index.html │ └── primes │ │ ├── Makefile │ │ ├── Makefile.windows │ │ ├── main.cpp │ │ ├── msvs │ │ ├── primes.sln │ │ └── primes.vcxproj │ │ ├── primes.cpp │ │ ├── primes.h │ │ ├── readme.html │ │ └── xcode │ │ └── primes.xcodeproj │ │ └── project.pbxproj ├── pipeline │ ├── index.html │ └── square │ │ ├── Makefile │ │ ├── Makefile.windows │ │ ├── gen_input.cpp │ │ ├── msvs │ │ ├── square.sln │ │ └── square.vcxproj │ │ ├── readme.html │ │ ├── square.cpp │ │ └── xcode │ │ └── square.xcodeproj │ │ └── project.pbxproj ├── task │ ├── index.html │ └── tree_sum │ │ ├── Makefile │ │ ├── Makefile.windows │ │ ├── OptimizedParallelSumTree.cpp │ │ ├── SerialSumTree.cpp │ │ ├── SimpleParallelSumTree.cpp │ │ ├── TreeMaker.h │ │ ├── common.h │ │ ├── main.cpp │ │ ├── msvs │ │ ├── tree_sum.sln │ │ └── tree_sum.vcxproj │ │ ├── readme.html │ │ └── xcode │ │ └── tree_sum.xcodeproj │ │ └── project.pbxproj ├── task_arena │ ├── fractal │ │ ├── Makefile │ │ ├── Makefile.windows │ │ ├── fractal.cpp │ │ ├── fractal.h │ │ ├── fractal_video.h │ │ ├── main.cpp │ │ ├── msvs │ │ │ ├── fractal.sln │ │ │ ├── fractal.vcxproj │ │ │ ├── gui.ico │ │ │ ├── gui.rc │ │ │ ├── resource.h │ │ │ └── small.ico │ │ ├── readme.html │ │ └── xcode │ │ │ └── fractal.xcodeproj │ │ │ ├── project.pbxproj │ │ │ └── xcshareddata │ │ │ └── xcschemes │ │ │ ├── tbbExample.ios.xcscheme │ │ │ └── tbbExample.xcscheme │ └── index.html ├── task_group │ ├── index.html │ └── sudoku │ │ ├── Makefile │ │ ├── Makefile.windows │ │ ├── input1 │ │ ├── input2 │ │ ├── input3 │ │ ├── input4 │ │ ├── msvs │ │ ├── sudoku.sln │ │ └── sudoku.vcxproj │ │ ├── readme.html │ │ ├── sudoku.cpp │ │ └── xcode │ │ └── sudoku.xcodeproj │ │ └── project.pbxproj └── test_all │ ├── fibonacci │ ├── CMakeLists.txt │ ├── Fibonacci.cpp │ ├── Makefile │ ├── Makefile.windows │ ├── msvs │ │ ├── fibonacci.sln │ │ └── fibonacci.vcxproj │ ├── readme.html │ └── xcode │ │ └── fibonacci.xcodeproj │ │ └── project.pbxproj │ └── index.html ├── include ├── index.html ├── serial │ └── tbb │ │ ├── parallel_for.h │ │ └── tbb_annotate.h └── tbb │ ├── aggregator.h │ ├── aligned_space.h │ ├── atomic.h │ ├── blocked_range.h │ ├── blocked_range2d.h │ ├── blocked_range3d.h │ ├── blocked_rangeNd.h │ ├── cache_aligned_allocator.h │ ├── combinable.h │ ├── compat │ ├── condition_variable │ ├── ppl.h │ ├── thread │ └── tuple │ ├── concurrent_hash_map.h │ ├── concurrent_lru_cache.h │ ├── concurrent_map.h │ ├── concurrent_priority_queue.h │ ├── concurrent_queue.h │ ├── concurrent_set.h │ ├── concurrent_unordered_map.h │ ├── concurrent_unordered_set.h │ ├── concurrent_vector.h │ ├── critical_section.h │ ├── enumerable_thread_specific.h │ ├── flow_graph.h │ ├── flow_graph_abstractions.h │ ├── flow_graph_opencl_node.h │ ├── global_control.h │ ├── index.html │ ├── info.h │ ├── internal │ ├── _aggregator_impl.h │ ├── _allocator_traits.h │ ├── _concurrent_queue_impl.h │ ├── _concurrent_skip_list_impl.h │ ├── _concurrent_unordered_impl.h │ ├── _deprecated_header_message_guard.h │ ├── _flow_graph_async_msg_impl.h │ ├── _flow_graph_body_impl.h │ ├── _flow_graph_cache_impl.h │ ├── _flow_graph_impl.h │ ├── _flow_graph_indexer_impl.h │ ├── _flow_graph_item_buffer_impl.h │ ├── _flow_graph_join_impl.h │ ├── _flow_graph_node_impl.h │ ├── _flow_graph_node_set_impl.h │ ├── _flow_graph_nodes_deduction.h │ ├── _flow_graph_streaming_node.h │ ├── _flow_graph_tagged_buffer_impl.h │ ├── _flow_graph_trace_impl.h │ ├── _flow_graph_types_impl.h │ ├── _mutex_padding.h │ ├── _node_handle_impl.h │ ├── _range_iterator.h │ ├── _tbb_hash_compare_impl.h │ ├── _tbb_strings.h │ ├── _tbb_trace_impl.h │ ├── _tbb_windef.h │ ├── _template_helpers.h │ ├── _warning_suppress_disable_notice.h │ ├── _warning_suppress_enable_notice.h │ ├── _x86_eliding_mutex_impl.h │ └── _x86_rtm_rw_mutex_impl.h │ ├── iterators.h │ ├── machine │ ├── gcc_arm.h │ ├── gcc_generic.h │ ├── gcc_ia32_common.h │ ├── gcc_itsx.h │ ├── ibm_aix51.h │ ├── icc_generic.h │ ├── linux_common.h │ ├── linux_ia32.h │ ├── linux_ia64.h │ ├── linux_intel64.h │ ├── mac_ppc.h │ ├── macos_common.h │ ├── mic_common.h │ ├── msvc_armv7.h │ ├── msvc_ia32_common.h │ ├── sunos_sparc.h │ ├── windows_api.h │ ├── windows_ia32.h │ └── windows_intel64.h │ ├── memory_pool.h │ ├── mutex.h │ ├── null_mutex.h │ ├── null_rw_mutex.h │ ├── parallel_do.h │ ├── parallel_for.h │ ├── parallel_for_each.h │ ├── parallel_invoke.h │ ├── parallel_reduce.h │ ├── parallel_scan.h │ ├── parallel_sort.h │ ├── parallel_while.h │ ├── partitioner.h │ ├── pipeline.h │ ├── queuing_mutex.h │ ├── queuing_rw_mutex.h │ ├── reader_writer_lock.h │ ├── recursive_mutex.h │ ├── runtime_loader.h │ ├── scalable_allocator.h │ ├── spin_mutex.h │ ├── spin_rw_mutex.h │ ├── task.h │ ├── task_arena.h │ ├── task_group.h │ ├── task_scheduler_init.h │ ├── task_scheduler_observer.h │ ├── tbb.h │ ├── tbb_allocator.h │ ├── tbb_config.h │ ├── tbb_disable_exceptions.h │ ├── tbb_exception.h │ ├── tbb_machine.h │ ├── tbb_profiling.h │ ├── tbb_stddef.h │ ├── tbb_thread.h │ ├── tbbmalloc_proxy.h │ └── tick_count.h ├── index.html ├── jni ├── Android.mk └── Application.mk ├── python ├── Makefile ├── TBB.py ├── index.html ├── rml │ ├── Makefile │ ├── ipc_server.cpp │ ├── ipc_utils.cpp │ └── ipc_utils.h ├── setup.py └── tbb │ ├── __init__.py │ ├── __main__.py │ ├── api.i │ ├── pool.py │ └── test.py ├── src ├── Makefile ├── index.html ├── old │ ├── concurrent_queue_v2.cpp │ ├── concurrent_queue_v2.h │ ├── concurrent_vector_v2.cpp │ ├── concurrent_vector_v2.h │ ├── spin_rw_mutex_v2.cpp │ ├── spin_rw_mutex_v2.h │ ├── task_v2.cpp │ ├── test_concurrent_queue_v2.cpp │ ├── test_concurrent_vector_v2.cpp │ ├── test_mutex_v2.cpp │ └── test_task_scheduler_observer_v3.cpp ├── perf │ ├── coarse_grained_raii_lru_cache.h │ ├── cpq_pdes.cpp │ ├── fibonacci_impl_tbb.cpp │ ├── harness_perf.h │ ├── perf.cpp │ ├── perf.h │ ├── perf_sched.cpp │ ├── run_statistics.sh │ ├── statistics.cpp │ ├── statistics.h │ ├── statistics_xml.h │ ├── time_async_return.cpp │ ├── time_cpq_throughput_test.cpp │ ├── time_fibonacci_cutoff.cpp │ ├── time_framework.h │ ├── time_hash_map.cpp │ ├── time_hash_map_fill.cpp │ ├── time_hash_map_fill.html │ ├── time_locked_work.cpp │ ├── time_lru_cache_throughput.cpp │ ├── time_parallel_for_each.cpp │ ├── time_resumable_tasks.cpp │ ├── time_sandbox.h │ ├── time_split_node.cpp │ └── time_vector.cpp ├── rml │ ├── client │ │ ├── index.html │ │ ├── library_assert.h │ │ ├── omp_dynamic_link.cpp │ │ ├── omp_dynamic_link.h │ │ ├── rml_factory.h │ │ ├── rml_omp.cpp │ │ └── rml_tbb.cpp │ ├── include │ │ ├── index.html │ │ ├── rml_base.h │ │ ├── rml_omp.h │ │ └── rml_tbb.h │ ├── index.html │ ├── perfor │ │ ├── omp_nested.cpp │ │ ├── omp_simple.cpp │ │ ├── tbb_multi_omp.cpp │ │ ├── tbb_simple.cpp │ │ └── thread_level.h │ ├── server │ │ ├── index.html │ │ ├── irml.rc │ │ ├── job_automaton.h │ │ ├── lin-rml-export.def │ │ ├── rml_server.cpp │ │ ├── thread_monitor.h │ │ ├── wait_counter.h │ │ ├── win32-rml-export.def │ │ └── win64-rml-export.def │ └── test │ │ ├── rml_omp_stub.cpp │ │ ├── test_job_automaton.cpp │ │ ├── test_rml_mixed.cpp │ │ ├── test_rml_omp.cpp │ │ ├── test_rml_omp_c_linkage.c │ │ ├── test_rml_tbb.cpp │ │ ├── test_server.h │ │ └── test_thread_monitor.cpp ├── tbb │ ├── arena.cpp │ ├── arena.h │ ├── cache_aligned_allocator.cpp │ ├── cilk-tbb-interop.h │ ├── co_context.h │ ├── concurrent_hash_map.cpp │ ├── concurrent_monitor.cpp │ ├── concurrent_monitor.h │ ├── concurrent_queue.cpp │ ├── concurrent_vector.cpp │ ├── condition_variable.cpp │ ├── critical_section.cpp │ ├── custom_scheduler.h │ ├── dynamic_link.cpp │ ├── dynamic_link.h │ ├── governor.cpp │ ├── governor.h │ ├── ia32-masm │ │ ├── atomic_support.asm │ │ ├── itsx.asm │ │ └── lock_byte.asm │ ├── ia64-gas │ │ ├── atomic_support.s │ │ ├── ia64_misc.s │ │ ├── lock_byte.s │ │ ├── log2.s │ │ └── pause.s │ ├── ibm_aix51 │ │ └── atomic_support.c │ ├── index.html │ ├── intel64-masm │ │ ├── atomic_support.asm │ │ ├── intel64_misc.asm │ │ └── itsx.asm │ ├── intrusive_list.h │ ├── itt_notify.cpp │ ├── itt_notify.h │ ├── lin32-tbb-export.def │ ├── lin32-tbb-export.lst │ ├── lin32-tbbbind-export.def │ ├── lin64-tbb-export.def │ ├── lin64-tbb-export.lst │ ├── lin64-tbbbind-export.def │ ├── lin64ipf-tbb-export.def │ ├── lin64ipf-tbb-export.lst │ ├── mac32-tbb-export.def │ ├── mac32-tbb-export.lst │ ├── mac64-tbb-export.def │ ├── mac64-tbb-export.lst │ ├── mailbox.h │ ├── market.cpp │ ├── market.h │ ├── mutex.cpp │ ├── observer_proxy.cpp │ ├── observer_proxy.h │ ├── pipeline.cpp │ ├── private_server.cpp │ ├── queuing_mutex.cpp │ ├── queuing_rw_mutex.cpp │ ├── reader_writer_lock.cpp │ ├── recursive_mutex.cpp │ ├── scheduler.cpp │ ├── scheduler.h │ ├── scheduler_common.h │ ├── scheduler_utility.h │ ├── semaphore.cpp │ ├── semaphore.h │ ├── spin_mutex.cpp │ ├── spin_rw_mutex.cpp │ ├── task.cpp │ ├── task_group_context.cpp │ ├── task_stream.h │ ├── task_stream_extended.h │ ├── tbb_assert_impl.h │ ├── tbb_bind.cpp │ ├── tbb_environment.h │ ├── tbb_main.cpp │ ├── tbb_main.h │ ├── tbb_misc.cpp │ ├── tbb_misc.h │ ├── tbb_misc_ex.cpp │ ├── tbb_resource.rc │ ├── tbb_statistics.cpp │ ├── tbb_statistics.h │ ├── tbb_thread.cpp │ ├── tbb_version.h │ ├── tls.h │ ├── tools_api │ │ ├── disable_warnings.h │ │ ├── ittnotify.h │ │ ├── ittnotify_config.h │ │ ├── ittnotify_static.c │ │ ├── ittnotify_static.h │ │ ├── ittnotify_types.h │ │ └── legacy │ │ │ └── ittnotify.h │ ├── win32-tbb-export.def │ ├── win32-tbb-export.lst │ ├── win32-tbbbind-export.def │ ├── win64-gcc-tbb-export.def │ ├── win64-gcc-tbb-export.lst │ ├── win64-tbb-export.def │ ├── win64-tbb-export.lst │ ├── win64-tbbbind-export.def │ ├── winrt-tbb-export.lst │ └── x86_rtm_rw_mutex.cpp ├── tbbmalloc │ ├── Customize.h │ ├── MapMemory.h │ ├── Statistics.h │ ├── Synchronize.h │ ├── TypeDefinitions.h │ ├── backend.cpp │ ├── backend.h │ ├── backref.cpp │ ├── frontend.cpp │ ├── index.html │ ├── large_objects.cpp │ ├── large_objects.h │ ├── lin32-proxy-export.def │ ├── lin32-tbbmalloc-export.def │ ├── lin64-proxy-export.def │ ├── lin64-tbbmalloc-export.def │ ├── lin64ipf-proxy-export.def │ ├── lin64ipf-tbbmalloc-export.def │ ├── mac32-tbbmalloc-export.def │ ├── mac64-tbbmalloc-export.def │ ├── proxy.cpp │ ├── proxy.h │ ├── proxy_overload_osx.h │ ├── shared_utils.h │ ├── tbb_function_replacement.cpp │ ├── tbb_function_replacement.h │ ├── tbbmalloc.cpp │ ├── tbbmalloc.rc │ ├── tbbmalloc_internal.h │ ├── tbbmalloc_internal_api.h │ ├── win32-gcc-tbbmalloc-export.def │ ├── win32-tbbmalloc-export.def │ ├── win64-gcc-tbbmalloc-export.def │ └── win64-tbbmalloc-export.def ├── tbbproxy │ ├── tbbproxy-windows.asm │ └── tbbproxy.cpp └── test │ ├── harness.h │ ├── harness_allocator.h │ ├── harness_allocator_overload.h │ ├── harness_assert.h │ ├── harness_bad_expr.h │ ├── harness_barrier.h │ ├── harness_checktype.h │ ├── harness_concurrency.h │ ├── harness_concurrency_tracker.h │ ├── harness_cpu.h │ ├── harness_defs.h │ ├── harness_dynamic_libs.h │ ├── harness_eh.h │ ├── harness_fp.h │ ├── harness_graph.h │ ├── harness_inject_scheduler.h │ ├── harness_iterator.h │ ├── harness_m128.h │ ├── harness_memory.h │ ├── harness_mic.h │ ├── harness_preload.h │ ├── harness_report.h │ ├── harness_runtime_loader.h │ ├── harness_state_trackable.h │ ├── harness_task.h │ ├── harness_tbb_independence.h │ ├── harness_test_cases_framework.h │ ├── harness_tls.h │ ├── harness_tsx.h │ ├── test_ScalableAllocator.cpp │ ├── test_ScalableAllocator_STL.cpp │ ├── test_aggregator.cpp │ ├── test_aligned_space.cpp │ ├── test_allocator.h │ ├── test_allocator_STL.h │ ├── test_arena_constraints_hwloc.cpp │ ├── test_arena_constraints_stubs.cpp │ ├── test_assembly.cpp │ ├── test_async_msg.cpp │ ├── test_async_node.cpp │ ├── test_atomic.cpp │ ├── test_blocked_range.cpp │ ├── test_blocked_range2d.cpp │ ├── test_blocked_range3d.cpp │ ├── test_blocked_rangeNd.cpp │ ├── test_broadcast_node.cpp │ ├── test_buffer_node.cpp │ ├── test_cache_aligned_allocator.cpp │ ├── test_cache_aligned_allocator_STL.cpp │ ├── test_cilk_common.h │ ├── test_cilk_dynamic_load.cpp │ ├── test_cilk_interop.cpp │ ├── test_combinable.cpp │ ├── test_composite_node.cpp │ ├── test_concurrent_associative_common.h │ ├── test_concurrent_hash_map.cpp │ ├── test_concurrent_lru_cache.cpp │ ├── test_concurrent_map.cpp │ ├── test_concurrent_monitor.cpp │ ├── test_concurrent_ordered_common.h │ ├── test_concurrent_priority_queue.cpp │ ├── test_concurrent_queue.cpp │ ├── test_concurrent_queue_whitebox.cpp │ ├── test_concurrent_set.cpp │ ├── test_concurrent_unordered_common.h │ ├── test_concurrent_unordered_map.cpp │ ├── test_concurrent_unordered_set.cpp │ ├── test_concurrent_vector.cpp │ ├── test_condition_variable.h │ ├── test_container_move_support.h │ ├── test_continue_node.cpp │ ├── test_critical_section.cpp │ ├── test_dynamic_link.cpp │ ├── test_eh_algorithms.cpp │ ├── test_eh_flow_graph.cpp │ ├── test_eh_tasks.cpp │ ├── test_enumerable_thread_specific.cpp │ ├── test_environment_whitebox.cpp │ ├── test_examples_common_utility.cpp │ ├── test_fast_random.cpp │ ├── test_flow_graph.cpp │ ├── test_flow_graph_priorities.cpp │ ├── test_flow_graph_whitebox.cpp │ ├── test_follows_and_precedes_api.h │ ├── test_fp.cpp │ ├── test_function_node.cpp │ ├── test_global_control.cpp │ ├── test_global_control_whitebox.cpp │ ├── test_halt.cpp │ ├── test_handle_perror.cpp │ ├── test_hw_concurrency.cpp │ ├── test_indexer_node.cpp │ ├── test_initializer_list.h │ ├── test_inits_loop.cpp │ ├── test_input_node.cpp │ ├── test_intrusive_list.cpp │ ├── test_iterators.cpp │ ├── test_ittnotify.cpp │ ├── test_join_node.cpp │ ├── test_join_node.h │ ├── test_join_node_key_matching.cpp │ ├── test_join_node_msg_key_matching.cpp │ ├── test_lambda.cpp │ ├── test_limiter_node.cpp │ ├── test_malloc_atexit.cpp │ ├── test_malloc_compliance.cpp │ ├── test_malloc_init_shutdown.cpp │ ├── test_malloc_lib_unload.cpp │ ├── test_malloc_new_handler.cpp │ ├── test_malloc_overload.cpp │ ├── test_malloc_overload_disable.cpp │ ├── test_malloc_pools.cpp │ ├── test_malloc_pure_c.c │ ├── test_malloc_regression.cpp │ ├── test_malloc_shutdown_hang.cpp │ ├── test_malloc_used_by_lib.cpp │ ├── test_malloc_whitebox.cpp │ ├── test_model_plugin.cpp │ ├── test_multifunction_node.cpp │ ├── test_mutex.cpp │ ├── test_mutex_native_threads.cpp │ ├── test_opencl_kernel_32.spir │ ├── test_opencl_kernel_64.spir │ ├── test_opencl_node.cl │ ├── test_opencl_node.cpp │ ├── test_opencl_precompiled_kernel_gpu_32.ir │ ├── test_opencl_precompiled_kernel_gpu_64.ir │ ├── test_openmp.cpp │ ├── test_overwrite_node.cpp │ ├── test_parallel_do.cpp │ ├── test_parallel_for.cpp │ ├── test_parallel_for_each.cpp │ ├── test_parallel_for_vectorization.cpp │ ├── test_parallel_invoke.cpp │ ├── test_parallel_pipeline.cpp │ ├── test_parallel_reduce.cpp │ ├── test_parallel_scan.cpp │ ├── test_parallel_sort.cpp │ ├── test_parallel_while.cpp │ ├── test_partitioner.h │ ├── test_partitioner_whitebox.cpp │ ├── test_partitioner_whitebox.h │ ├── test_pipeline.cpp │ ├── test_pipeline_with_tbf.cpp │ ├── test_priority_queue_node.cpp │ ├── test_queue_node.cpp │ ├── test_range_based_for.h │ ├── test_reader_writer_lock.cpp │ ├── test_resumable_tasks.cpp │ ├── test_runtime_loader.cpp │ ├── test_rwm_upgrade_downgrade.cpp │ ├── test_semaphore.cpp │ ├── test_sequencer_node.cpp │ ├── test_source_node.cpp │ ├── test_split_node.cpp │ ├── test_static_assert.cpp │ ├── test_std_thread.cpp │ ├── test_streaming_node.cpp │ ├── test_tagged_msg.cpp │ ├── test_task.cpp │ ├── test_task_arena.cpp │ ├── test_task_assertions.cpp │ ├── test_task_auto_init.cpp │ ├── test_task_enqueue.cpp │ ├── test_task_group.cpp │ ├── test_task_leaks.cpp │ ├── test_task_priority.cpp │ ├── test_task_scheduler_init.cpp │ ├── test_task_scheduler_observer.cpp │ ├── test_task_steal_limit.cpp │ ├── test_tbb_condition_variable.cpp │ ├── test_tbb_fork.cpp │ ├── test_tbb_header.cpp │ ├── test_tbb_thread.cpp │ ├── test_tbb_version.cpp │ ├── test_thread.h │ ├── test_tick_count.cpp │ ├── test_tuple.cpp │ ├── test_write_once_node.cpp │ └── test_yield.cpp └── third-party-programs.txt /.appveyor.yml: -------------------------------------------------------------------------------- 1 | environment: 2 | matrix: 3 | - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015 4 | VS_GEN: Visual Studio 14 2015 5 | - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 6 | VS_GEN: Visual Studio 15 2017 Win64 7 | - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019 8 | VS_GEN: Visual Studio 16 2019 9 | 10 | install: 11 | - cinstall: python 12 | build_script: 13 | - echo Running cmake... 14 | - cmake -G "%VS_GEN%" -DCMAKE_SUPPRESS_REGENERATION=1 . 15 | - set MSBuildLogger="C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" 16 | - cmake --build . --config Release -- /v:m /logger:%MSBuildLogger% 17 | - ctest -C Release --output-on-failure --timeout 500 -E parallel_for 18 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Set the default behavior, in case people don't have core.autocrlf set. 2 | * text=auto 3 | 4 | # Explicitly declare text files you want to always be normalized and converted 5 | # to native line endings on checkout. 6 | *.c text 7 | *.h text 8 | *.cpp text 9 | *.def text 10 | *.rc text 11 | *.i text 12 | *.sh text 13 | *.csh text 14 | *.mk text 15 | *.java text 16 | *.csv text 17 | *.lst text 18 | *.asm text 19 | *.cfg text 20 | *.css text 21 | *.inc text 22 | *.js text 23 | *.rb text 24 | *.strings text 25 | *.txt text 26 | *export.lst text 27 | *.xml text 28 | *.py text 29 | *.md text 30 | *.classpath text 31 | *.cproject text 32 | *.project text 33 | *.properties text 34 | *.java text 35 | *.gradle text 36 | 37 | # Declare files that will always have CRLF line endings on checkout. 38 | *.sln text eol=crlf 39 | *.bat text eol=crlf 40 | 41 | # Denote all files that are truly binary and should not be modified. 42 | *.png binary 43 | *.jpg binary 44 | *.ico binary 45 | *.spir binary 46 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore the debug and release directories created with Makefile builds # 2 | ######################################################################### 3 | build/*_debug/ 4 | build/*_release/ 5 | 6 | # Compiled source # 7 | ################### 8 | *.com 9 | *.class 10 | *.dll 11 | *.lib 12 | *.pdb 13 | *.exe 14 | *.o 15 | *.so 16 | *.so.1 17 | *.so.2 18 | *.dylib 19 | *.a 20 | *.obj 21 | *.pyc 22 | 23 | *.orig 24 | *.raw 25 | *.sample 26 | *.slo 27 | *.swp 28 | *.config 29 | *.la 30 | *.lai 31 | *.lo 32 | *.nhdr 33 | *.nii.gz 34 | *.nrrd 35 | 36 | # Packages # 37 | ############ 38 | # it's better to unpack these files and commit the raw source 39 | # git has its own built in compression methods 40 | *.7z 41 | *.dmg 42 | *.gz 43 | *.iso 44 | *.jar 45 | *.rar 46 | *.tar 47 | *.tgz 48 | *.zip 49 | 50 | # Logs and databases # 51 | ###################### 52 | *.log 53 | *.sql 54 | *.sqlite 55 | 56 | # OS generated files # 57 | ###################### 58 | .DS_Store 59 | .DS_Store? 60 | ._* 61 | .Spotlight-V100 62 | .Trashes 63 | ehthumbs.db 64 | Thumbs.db 65 | 66 | # IDE generated files # 67 | ###################### 68 | /.ninja_deps 69 | /.ninja_log 70 | /build.ninja 71 | /rules.ninja 72 | *~ 73 | .emacs.desktop 74 | 75 | # Build system generated files # 76 | ################################ 77 | CMakeCache.txt 78 | CMakeFiles/ 79 | 80 | *.cmake 81 | libtbb.dylib 82 | libtbb.so 83 | libtbb_static.a 84 | libtbbmalloc.dylib 85 | libtbbmalloc.so 86 | libtbbmalloc_proxy.dylib 87 | libtbbmalloc_proxy.so 88 | libtbbmalloc_proxy_static.a 89 | libtbbmalloc_static.a 90 | tbb.def 91 | tbbmalloc.def 92 | version_string.ver 93 | src/tbb/win32-gcc-tbb-export.def 94 | 95 | # Other # 96 | ######### 97 | .clang_complete 98 | .idea 99 | .svn 100 | crash* 101 | *.tmp 102 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: cpp 2 | sudo: false 3 | 4 | matrix: 5 | include: 6 | - os: linux 7 | compiler: g++ 8 | script: 9 | - cmake -DTBB_BUILD_PYTHON=ON -DCMAKE_INSTALL_PREFIX=~/.local . 10 | - make install -j2 11 | - ctest -j2 --output-on-failure --timeout 500 12 | addons: 13 | apt: 14 | packages: 15 | - g++ 16 | - cmake 17 | - swig 18 | - python-dev 19 | - os: osx 20 | compiler: clang 21 | script: 22 | - cmake -DCMAKE_INSTALL_PREFIX=~/.local . 23 | - make install -j2 24 | - ctest -j2 --output-on-failure --timeout 500 25 | - os: linux 26 | compiler: x86_64-w64-mingw32-g++ 27 | script: 28 | - cmake -DCMAKE_TOOLCHAIN_FILE=build/mingw_cross_toolchain.cmake -DCMAKE_INSTALL_PREFIX=~/.local -DCMAKE_CROSSCOMPILING_EMULATOR=/usr/bin/wine-development . 29 | - make install -j2 30 | - cp -v /usr/lib/gcc/x86_64-w64-mingw32/5.3-posix/*.dll /usr/x86_64-w64-mingw32/lib/*.dll . 31 | - ctest -j2 --output-on-failure --timeout 500 32 | addons: 33 | apt: 34 | packages: 35 | - g++-mingw-w64-x86-64 36 | - gcc-mingw-w64-x86-64 37 | - binutils-mingw-w64-x86-64 38 | - cmake 39 | - make 40 | - wine-development 41 | -------------------------------------------------------------------------------- /README: -------------------------------------------------------------------------------- 1 | Intel(R) Threading Building Blocks - README 2 | 3 | See index.html for directions and documentation. 4 | 5 | If source is present (./Makefile and src/ directories), 6 | type 'gmake' in this directory to build and test. 7 | 8 | See examples/index.html for runnable examples and directions. 9 | 10 | See http://threadingbuildingblocks.org for full documentation 11 | and software information. 12 | -------------------------------------------------------------------------------- /build/FreeBSD.clang.inc: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2005-2020 Intel Corporation 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | include $(tbb_root)/build/BSD.clang.inc 16 | 17 | LIBS += -lrt 18 | -------------------------------------------------------------------------------- /build/FreeBSD.inc: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2005-2020 Intel Corporation 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | include $(tbb_root)/build/BSD.inc 16 | -------------------------------------------------------------------------------- /build/OpenBSD.clang.inc: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2005-2020 Intel Corporation 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | include $(tbb_root)/build/BSD.clang.inc 16 | -------------------------------------------------------------------------------- /build/OpenBSD.inc: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2005-2020 Intel Corporation 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | include $(tbb_root)/build/BSD.inc 16 | -------------------------------------------------------------------------------- /build/codecov.txt: -------------------------------------------------------------------------------- 1 | src/tbb 2 | src/tbbmalloc 3 | include/tbb 4 | src/rml/server 5 | src/rml/client 6 | src/rml/include 7 | source/malloc 8 | -------------------------------------------------------------------------------- /build/ios.clang.inc: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2005-2020 Intel Corporation 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | include $(tbb_root)/build/macos.clang.inc 16 | -------------------------------------------------------------------------------- /build/ios.macos.inc: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2005-2020 Intel Corporation 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | ifneq ($(arch),$(filter $(arch),ia32 intel64 armv7 armv7s arm64)) 16 | $(error $(arch) is unknown architecture. Known arhitechtures are ia32 intel64 armv7 armv7s arm64) 17 | endif 18 | 19 | # If target is ios but arch is ia32/intel64 then build for 32/64 simulator! 20 | ifeq (,$(SDKROOT)) 21 | ifeq ($(arch),$(filter $(arch),ia32 intel64)) 22 | export SDKROOT:=$(shell xcodebuild -sdk -version | grep -o -E '/.*SDKs/iPhoneSimulator.*' 2>/dev/null) 23 | else 24 | export SDKROOT:=$(shell xcodebuild -sdk -version | grep -o -E '/.*SDKs/iPhoneOS.*' 2>/dev/null) 25 | endif 26 | endif 27 | ifeq (,$(SDKROOT)) 28 | $(error iOS* SDK not found) 29 | endif 30 | 31 | ios_version:=$(shell echo $(SDKROOT) | sed -e "s/.*[a-z,A-Z]\(.*\).sdk/\1/") 32 | runtime:=cc$(clang_version)_ios$(ios_version) 33 | 34 | IPHONEOS_DEPLOYMENT_TARGET ?= 8.0 35 | -------------------------------------------------------------------------------- /build/mic.linux.inc: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2005-2020 Intel Corporation 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | ifeq ($(tbb_os),mic) 16 | $(error MIC supports only cross-compilation. Specify "target=mic" instead.) 17 | endif 18 | 19 | ifneq ($(BUILDING_PHASE),1) 20 | # The same build prefix should be used in offload.inc 21 | ifeq (,$(tbb_build_prefix)) 22 | tbb_build_prefix=mic_icc$(CPF_SUFFIX) 23 | endif 24 | # For examples 25 | mic_tbb_build_prefix=$(tbb_build_prefix) 26 | endif 27 | 28 | MAKE_VERSIONS=sh $(tbb_root)/build/version_info_linux.sh $(VERSION_FLAGS) >version_string.ver 29 | MAKE_TBBVARS=sh $(tbb_root)/build/generate_tbbvars.sh MIC_ MIC_ 30 | def_prefix=lin64 31 | 32 | TEST_LAUNCHER= 33 | run_cmd ?= bash $(tbb_root)/build/mic.linux.launcher.sh $(largs) 34 | 35 | # detects whether examples are being built. 36 | ifeq ($(BUILDING_PHASE),0) 37 | export UI = con 38 | export x64 = 64 39 | endif # examples 40 | -------------------------------------------------------------------------------- /build/mingw_cross_toolchain.cmake: -------------------------------------------------------------------------------- 1 | # CMake toolchain file, cf. README.mingw_cross 2 | SET(CMAKE_SYSTEM_NAME Windows) 3 | IF("${GNU_HOST}" STREQUAL "") 4 | SET(GNU_HOST x86_64-w64-mingw32) 5 | ENDIF() 6 | SET(CMAKE_C_COMPILER ${GNU_HOST}-gcc) 7 | SET(CMAKE_CXX_COMPILER ${GNU_HOST}-g++) 8 | SET(CMAKE_RC_COMPILER ${GNU_HOST}-windres) 9 | -------------------------------------------------------------------------------- /build/suncc.map.pause: -------------------------------------------------------------------------------- 1 | hwcap_1 = OVERRIDE; -------------------------------------------------------------------------------- /build/version_info_aix.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # Copyright (c) 2005-2020 Intel Corporation 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | # Script used to generate version info string 18 | echo "#define __TBB_VERSION_STRINGS(N) \\" 19 | echo '#N": BUILD_HOST'"\t\t"`hostname -s`" ("`uname -m`")"'" ENDL \' 20 | # find OS name in *-release and issue* files by filtering blank lines and lsb-release content out 21 | echo '#N": BUILD_OS'"\t\t"`lsb_release -sd 2>/dev/null | grep -ih '[a-z] ' - /etc/*release /etc/issue 2>/dev/null | head -1 | sed -e 's/["\\\\]//g'`'" ENDL \' 22 | echo '#N": BUILD_KERNEL'"\t"`uname -srv`'" ENDL \' 23 | echo '#N": BUILD_GCC'"\t\t"`g++ --version &1 | grep 'g++'`'" ENDL \' 24 | [ -z "$COMPILER_VERSION" ] || echo '#N": BUILD_COMPILER'"\t"$COMPILER_VERSION'" ENDL \' 25 | echo '#N": BUILD_LIBC'"\t"`getconf GNU_LIBC_VERSION | grep glibc | sed -e 's/^glibc //'`'" ENDL \' 26 | echo '#N": BUILD_LD'"\t\t"`ld -v 2>&1 | grep 'version'`'" ENDL \' 27 | echo '#N": BUILD_TARGET'"\t$arch on $runtime"'" ENDL \' 28 | echo '#N": BUILD_COMMAND'"\t"$*'" ENDL \' 29 | echo "" 30 | echo "#define __TBB_DATETIME \""`date -u`"\"" 31 | -------------------------------------------------------------------------------- /build/version_info_android.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # Copyright (c) 2005-2020 Intel Corporation 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | # Script used to generate version info string 18 | echo "#define __TBB_VERSION_STRINGS(N) \\" 19 | echo '#N": BUILD_HOST'"\t\t"`hostname -s`" ("`uname -m`")"'" ENDL \' 20 | # find OS name in *-release and issue* files by filtering blank lines and lsb-release content out 21 | echo '#N": BUILD_OS'"\t\t"`lsb_release -sd 2>/dev/null | grep -ih '[a-z] ' - /etc/*release /etc/issue 2>/dev/null | head -1 | sed -e 's/["\\\\]//g'`'" ENDL \' 22 | echo '#N": BUILD_TARGET_CXX'"\t"`$TARGET_CXX --version | head -n1`'" ENDL \' 23 | [ -z "$COMPILER_VERSION" ] || echo '#N": BUILD_COMPILER'"\t"$COMPILER_VERSION'" ENDL \' 24 | [ -z "$ndk_version" ] || echo '#N": BUILD_NDK'"\t\t$ndk_version"'" ENDL \' 25 | echo '#N": BUILD_LD'"\t\t"`${tbb_tool_prefix}ld -v 2>&1 | grep 'ld'`'" ENDL \' 26 | echo '#N": BUILD_TARGET'"\t$arch on $runtime"'" ENDL \' 27 | echo '#N": BUILD_COMMAND'"\t"$*'" ENDL \' 28 | echo "" 29 | echo "#define __TBB_DATETIME \""`date -u`"\"" 30 | -------------------------------------------------------------------------------- /build/version_info_linux.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # Copyright (c) 2005-2020 Intel Corporation 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | # Script used to generate version info string 18 | echo "#define __TBB_VERSION_STRINGS(N) \\" 19 | echo '#N": BUILD_HOST'"\t\t"`hostname -s`" ("`uname -m`")"'" ENDL \' 20 | # find OS name in *-release and issue* files by filtering blank lines and lsb-release content out 21 | echo '#N": BUILD_OS'"\t\t"`lsb_release -sd 2>/dev/null | grep -ih '[a-z] ' - /etc/*release /etc/issue 2>/dev/null | head -1 | sed -e 's/["\\\\]//g'`'" ENDL \' 22 | echo '#N": BUILD_KERNEL'"\t"`uname -srv`'" ENDL \' 23 | echo '#N": BUILD_GCC'"\t\t"`g++ --version &1 | grep 'g++'`'" ENDL \' 24 | [ -z "$COMPILER_VERSION" ] || echo '#N": BUILD_COMPILER'"\t"$COMPILER_VERSION'" ENDL \' 25 | echo '#N": BUILD_LIBC'"\t"`getconf GNU_LIBC_VERSION | grep glibc | sed -e 's/^glibc //'`'" ENDL \' 26 | echo '#N": BUILD_LD'"\t\t"`ld -v 2>&1 | grep 'version'`'" ENDL \' 27 | echo '#N": BUILD_TARGET'"\t$arch on $runtime"'" ENDL \' 28 | echo '#N": BUILD_COMMAND'"\t"$*'" ENDL \' 29 | echo "" 30 | echo "#define __TBB_DATETIME \""`date -u`"\"" 31 | -------------------------------------------------------------------------------- /build/version_info_macos.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # Copyright (c) 2005-2020 Intel Corporation 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | # Script used to generate version info string 18 | echo "#define __TBB_VERSION_STRINGS(N) \\" 19 | echo '#N": BUILD_HOST'"\t\t"`hostname -s`" ("`arch`")"'" ENDL \' 20 | echo '#N": BUILD_OS'"\t\t"`sw_vers -productName`" version "`sw_vers -productVersion`'" ENDL \' 21 | echo '#N": BUILD_KERNEL'"\t"`uname -v`'" ENDL \' 22 | echo '#N": BUILD_CLANG'"\t"`clang --version | sed -n "1p"`'" ENDL \' 23 | echo '#N": BUILD_XCODE'"\t"`xcodebuild -version &1 | grep 'Xcode'`'" ENDL \' 24 | [ -z "$COMPILER_VERSION" ] || echo '#N": BUILD_COMPILER'"\t"$COMPILER_VERSION'" ENDL \' 25 | echo '#N": BUILD_TARGET'"\t$arch on $runtime"'" ENDL \' 26 | echo '#N": BUILD_COMMAND'"\t"$*'" ENDL \' 27 | echo "" 28 | echo "#define __TBB_DATETIME \""`date -u`"\"" 29 | -------------------------------------------------------------------------------- /build/version_info_sunos.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # Copyright (c) 2005-2020 Intel Corporation 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | # Script used to generate version info string 18 | echo "#define __TBB_VERSION_STRINGS(N) \\" 19 | echo '#N": BUILD_HOST'"\t"`hostname`" ("`arch`")"'" ENDL \' 20 | echo '#N": BUILD_OS'"\t\t"`uname`'" ENDL \' 21 | echo '#N": BUILD_KERNEL'"\t"`uname -srv`'" ENDL \' 22 | echo '#N": BUILD_SUNCC'"\t"`CC -V &1 | grep 'C++'`'" ENDL \' 23 | [ -z "$COMPILER_VERSION" ] || echo '#N": BUILD_COMPILER'"\t"$COMPILER_VERSION'" ENDL \' 24 | echo '#N": BUILD_TARGET'"\t$arch on $runtime"'" ENDL \' 25 | echo '#N": BUILD_COMMAND'"\t"$*'" ENDL \' 26 | echo "" 27 | echo "#define __TBB_DATETIME \""`date -u`"\"" 28 | -------------------------------------------------------------------------------- /build/version_string.ver.in: -------------------------------------------------------------------------------- 1 | #define __TBB_VERSION_STRINGS(N) \ 2 | #N": BUILD_HOST @CMAKE_SYSTEM_NAME@" ENDL \ 3 | #N": BUILD_OS @CMAKE_SYSTEM@" ENDL \ 4 | #N": BUILD_KERNEL @CMAKE_SYSTEM_VERSION@" ENDL \ 5 | #N": BUILD_GCC @CMAKE_CXX_COMPILER_ID@" ENDL \ 6 | #N": BUILD_LIBC Unknown" ENDL \ 7 | #N": BUILD_LD Unknown" ENDL \ 8 | #N": BUILD_TARGET Unknown" ENDL \ 9 | #N": BUILD_COMMAND Unknown" ENDL 10 | 11 | #define __TBB_DATETIME "@_configure_date@" -------------------------------------------------------------------------------- /build/vs2013/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |

Overview

5 | This directory contains the Visual Studio* 2013 solution to build Intel® Threading Building Blocks. 6 | 7 | 8 |

Files

9 |
10 |
makefile.sln 11 |
Solution file.
12 |
tbb.vcxproj 13 |
Library project file.
14 |
tbbmalloc.vcxproj 15 |
Scalable allocator library project file.
16 |
tbbmalloc_proxy.vcxproj 17 |
Standard allocator replacement project file.
18 |
19 | 20 |
21 | Up to parent directory 22 |

23 | Copyright © 2017-2020 Intel Corporation. All Rights Reserved. 24 |

25 | Intel and the Intel logo are trademarks of Intel Corporation 26 | or its subsidiaries in the U.S. and/or other countries. 27 |

28 | * Other names and brands may be claimed as the property of others. 29 | 30 | 31 | -------------------------------------------------------------------------------- /cmake/templates/TBBConfigVersion.cmake.in: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2017-2020 Intel Corporation 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | set(PACKAGE_VERSION @TBB_VERSION@) 16 | 17 | if ("${PACKAGE_VERSION}" VERSION_LESS "${PACKAGE_FIND_VERSION}") 18 | set(PACKAGE_VERSION_COMPATIBLE FALSE) 19 | else() 20 | set(PACKAGE_VERSION_COMPATIBLE TRUE) 21 | if ("${PACKAGE_VERSION}" VERSION_EQUAL "${PACKAGE_FIND_VERSION}") 22 | set(PACKAGE_VERSION_EXACT TRUE) 23 | endif() 24 | endif() 25 | -------------------------------------------------------------------------------- /doc/copyright_brand_disclaimer_doxygen.txt: -------------------------------------------------------------------------------- 1 |
2 |

3 | Copyright © 2005-2020 Intel Corporation. All Rights Reserved. 4 |

5 | Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are 6 | registered trademarks or trademarks of Intel Corporation or its 7 | subsidiaries in the United States and other countries. 8 |

9 | * Other names and brands may be claimed as the property of others. 10 | -------------------------------------------------------------------------------- /examples/common/examples-common.inc: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2005-2020 Intel Corporation 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | # detect if a compiler can support C++11 16 | # If CXX0XFLAGS already set, do not change it 17 | ifneq (,$(findstring icc, $(CXX))$(findstring icpc, $(CXX))$(findstring clang++, $(CXX))) 18 | # every supported icc or clang is OK 19 | CXX0XFLAGS ?= -std=c++11 20 | else 21 | ifneq (,$(findstring g++, $(CXX))$(findstring gcc, $(CXX))) 22 | ifneq (, $(strip $(shell $(CXX) -v 2>&1 | grep "clang-"))) 23 | # This is clang actually, 24 | # every supported clang is OK 25 | CXX0XFLAGS ?= -std=c++11 26 | else 27 | # support of lambda started GCC 4.5 28 | ifneq (, $(strip $(shell g++ -dumpfullversion -dumpversion | egrep "^(4\.[5-9]|[5-9]|1[0-9])"))) 29 | CXX0XFLAGS ?= -std=c++11 30 | endif 31 | endif 32 | endif 33 | endif 34 | 35 | -------------------------------------------------------------------------------- /examples/common/gui/dxcheck.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | REM 3 | REM Copyright (c) 2005-2020 Intel Corporation 4 | REM 5 | REM Licensed under the Apache License, Version 2.0 (the "License"); 6 | REM you may not use this file except in compliance with the License. 7 | REM You may obtain a copy of the License at 8 | REM 9 | REM http://www.apache.org/licenses/LICENSE-2.0 10 | REM 11 | REM Unless required by applicable law or agreed to in writing, software 12 | REM distributed under the License is distributed on an "AS IS" BASIS, 13 | REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | REM See the License for the specific language governing permissions and 15 | REM limitations under the License. 16 | REM 17 | if "%DXSDK_DIR%"=="" goto error_no_DXSDK 18 | goto end 19 | 20 | :error_no_DXSDK 21 | echo DirectX SDK Check : error : This example requires the DirectX SDK. Either (re)-install the DirectX SDK, or set the DXSDK_DIR environment variable to indicate where it is installed. 22 | 23 | :end 24 | 25 | -------------------------------------------------------------------------------- /examples/common/gui/xcode/tbbExample/OpenGLView.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #import 18 | 19 | #if TARGET_OS_IPHONE 20 | 21 | #import 22 | #import "OpenGLES/ES2/gl.h" 23 | 24 | @interface OpenGLView : UIView { 25 | NSTimer *timer; 26 | CGRect imageRect; 27 | } 28 | 29 | @property (nonatomic, retain) NSTimer *timer; 30 | @property (nonatomic) CGRect imageRect; 31 | 32 | - (void) drawRect:(CGRect)rect; 33 | - (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event; 34 | 35 | @end 36 | 37 | #elif TARGET_OS_MAC 38 | 39 | #import 40 | #import 41 | 42 | @interface OpenGLView : NSOpenGLView{ 43 | NSTimer *timer; 44 | } 45 | 46 | @property (nonatomic,retain) NSTimer *timer; 47 | 48 | - (void) drawRect:(NSRect)start; 49 | - (void) mouseDown:(NSEvent *)theEvent; 50 | - (void) keyDown:(NSEvent *)theEvent; 51 | - (BOOL) acceptsFirstResponder; 52 | - (void) viewDidEndLiveResize; 53 | 54 | @end 55 | 56 | #endif 57 | -------------------------------------------------------------------------------- /examples/common/gui/xcode/tbbExample/PkgInfo: -------------------------------------------------------------------------------- 1 | APPL???? -------------------------------------------------------------------------------- /examples/common/gui/xcode/tbbExample/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /examples/common/gui/xcode/tbbExample/en.lproj/MainMenu.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wjakob/tbb/9e219e24fe223b299783200f217e9d27790a87b0/examples/common/gui/xcode/tbbExample/en.lproj/MainMenu.nib -------------------------------------------------------------------------------- /examples/common/gui/xcode/tbbExample/iOS.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /examples/common/gui/xcode/tbbExample/main.m: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #import 18 | #import 19 | 20 | #if TARGET_OS_IPHONE 21 | 22 | #import 23 | #import "tbbAppDelegate.h" 24 | 25 | void get_screen_resolution(int *x, int *y) { 26 | // Getting landscape screen resolution in any case 27 | CGRect imageRect = [[UIScreen mainScreen] bounds]; 28 | *x=imageRect.size.width>imageRect.size.height?imageRect.size.width:imageRect.size.height; 29 | *y=imageRect.size.width 42 | 43 | int cocoa_main(int argc, char *argv[]) 44 | { 45 | return NSApplicationMain(argc, (const char **)argv); 46 | } 47 | #endif 48 | -------------------------------------------------------------------------------- /examples/common/gui/xcode/tbbExample/tbbAppDelegate.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | // 18 | // Created by Xcode* 4.3.2 19 | // 20 | 21 | #import 22 | 23 | #if TARGET_OS_IPHONE 24 | 25 | #import 26 | 27 | @interface tbbAppDelegate : UIResponder 28 | 29 | @property (strong, nonatomic) UIWindow *window; 30 | 31 | @end 32 | 33 | #elif TARGET_OS_MAC 34 | 35 | #import 36 | 37 | @interface tbbAppDelegate : NSObject { 38 | __unsafe_unretained NSWindow *_window; 39 | } 40 | 41 | @property (assign) IBOutlet NSWindow *window; 42 | 43 | - (BOOL) applicationShouldTerminateAfterLastWindowClosed:(NSApplication *) sender; 44 | 45 | @end 46 | 47 | #endif 48 | -------------------------------------------------------------------------------- /examples/common/gui/xcode/tbbExample/tbbAppDelegate.m: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #import "tbbAppDelegate.h" 18 | 19 | #if TARGET_OS_IPHONE 20 | 21 | @implementation tbbAppDelegate 22 | 23 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 24 | { 25 | return YES; 26 | } 27 | 28 | - (void)applicationDidEnterBackground:(UIApplication *)application 29 | { 30 | exit(EXIT_SUCCESS); 31 | } 32 | 33 | @end 34 | 35 | #elif TARGET_OS_MAC 36 | 37 | @implementation tbbAppDelegate 38 | 39 | @synthesize window = _window; 40 | 41 | //declared in macvideo.cpp file 42 | extern int g_sizex, g_sizey; 43 | 44 | - (void)applicationDidFinishLaunching:(NSNotification *)aNotification 45 | { 46 | // Insert code here to initialize your application 47 | NSRect windowSize; 48 | windowSize.size.height = g_sizey; 49 | windowSize.size.width = g_sizex; 50 | windowSize.origin=_window.frame.origin; 51 | [_window setFrame:windowSize display:YES]; 52 | 53 | } 54 | 55 | - (BOOL) applicationShouldTerminateAfterLastWindowClosed:(NSApplication *) sender 56 | { 57 | return YES; 58 | } 59 | 60 | @end 61 | 62 | #endif 63 | -------------------------------------------------------------------------------- /examples/common/gui/xcode/tbbExample/tbbExample-Info.ios.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | APPL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | LSRequiresIPhoneOS 24 | 25 | UILaunchStoryboardName 26 | iOS 27 | UIMainStoryboardFile 28 | iOS 29 | UIRequiredDeviceCapabilities 30 | 31 | armv7 32 | 33 | UISupportedInterfaceOrientations 34 | 35 | UIInterfaceOrientationLandscapeLeft 36 | UIInterfaceOrientationLandscapeRight 37 | 38 | UISupportedInterfaceOrientations~ipad 39 | 40 | UIInterfaceOrientationLandscapeLeft 41 | UIInterfaceOrientationLandscapeRight 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /examples/common/gui/xcode/tbbExample/tbbExample-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleDisplayName 8 | 9 | CFBundleExecutable 10 | ${EXECUTABLE_NAME} 11 | CFBundleIconFile 12 | 13 | CFBundleIdentifier 14 | $(PRODUCT_BUNDLE_IDENTIFIER) 15 | CFBundleInfoDictionaryVersion 16 | 6.0 17 | CFBundleName 18 | ${PRODUCT_NAME} 19 | CFBundlePackageType 20 | APPL 21 | CFBundleShortVersionString 22 | 1.0 23 | CFBundleSignature 24 | ???? 25 | CFBundleVersion 26 | 1 27 | LSApplicationCategoryType 28 | public.app-category.business 29 | LSEnvironment 30 | 31 | DYLD_LIBRARY_PATH 32 | Contents/Resources:.:../Resources:/tmp:$DYLD_LIBRARY_PATH 33 | LIBRARY_PATH 34 | Contents/Resources:.:../:/tmp:$DYLD_LIBRARY_PATH 35 | 36 | LSMinimumSystemVersion 37 | ${MACOSX_DEPLOYMENT_TARGET} 38 | NSHumanReadableCopyright 39 | Copyright 2005-2020 Intel Corporation. All Rights Reserved. 40 | NSMainNibFile 41 | MainMenu 42 | NSPrincipalClass 43 | NSApplication 44 | 45 | 46 | -------------------------------------------------------------------------------- /examples/common/gui/xcode/tbbExample/tbbExample-Prefix.pch: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | // 18 | // Prefix header for all source files of the 'tbbExample' target in the 'tbbExample' project 19 | // 20 | 21 | #import 22 | 23 | #if TARGET_OS_IPHONE 24 | #ifdef __OBJC__ 25 | #import 26 | #import 27 | #endif 28 | #elif TARGET_OS_MAC 29 | #ifdef __OBJC__ 30 | #import 31 | #endif 32 | #endif 33 | -------------------------------------------------------------------------------- /examples/common/toolset.props: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | Intel C++ Compiler 15.0 [Intel(R) System Studio] 5 | Intel C++ Compiler XE 15.0 6 | Intel C++ Compiler 16.0 7 | true 8 | 9 | 10 | -------------------------------------------------------------------------------- /examples/common/utility/get_default_num_threads.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #ifndef GET_DEFAULT_NUM_THREADS_H_ 18 | #define GET_DEFAULT_NUM_THREADS_H_ 19 | 20 | #include "tbb/global_control.h" 21 | 22 | namespace utility { 23 | inline int get_default_num_threads() { 24 | #if __TBB_MIC_OFFLOAD 25 | #pragma offload target(mic) out(default_num_threads) 26 | #endif // __TBB_MIC_OFFLOAD 27 | static size_t default_num_threads = tbb::global_control::active_value(tbb::global_control::max_allowed_parallelism); 28 | return static_cast(default_num_threads); 29 | } 30 | } 31 | 32 | #endif /* GET_DEFAULT_NUM_THREADS_H_ */ 33 | -------------------------------------------------------------------------------- /examples/concurrent_hash_map/count_strings/Makefile: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2005-2020 Intel Corporation 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | # GNU Makefile that builds and runs example. 16 | run_cmd= 17 | PROG=count_strings 18 | ARGS= 19 | PERF_RUN_ARGS=auto 10000000 silent 20 | 21 | # The C++ compiler 22 | ifneq (,$(shell which icc 2>/dev/null)) 23 | CXX=icc 24 | endif # icc 25 | 26 | ifeq ($(shell uname), Linux) 27 | ifeq ($(target), android) 28 | LIBS+= --sysroot=$(SYSROOT) 29 | run_cmd=../../common/android.linux.launcher.sh 30 | else 31 | LIBS+= -lrt 32 | endif 33 | else ifeq ($(shell uname), Darwin) 34 | override CXXFLAGS += -Wl,-rpath,$(TBBROOT)/lib 35 | endif 36 | 37 | # autodetect C++11 support 38 | include ../../common/examples-common.inc 39 | 40 | all: release test 41 | 42 | release: *.cpp 43 | $(CXX) -O2 -DNDEBUG $(CXXFLAGS) -o $(PROG) $^ -ltbb $(LIBS) $(CXX0XFLAGS) 44 | 45 | debug: *.cpp 46 | $(CXX) -O0 -g -DTBB_USE_DEBUG $(CXXFLAGS) -o $(PROG) $^ -ltbb_debug $(LIBS) $(CXX0XFLAGS) 47 | 48 | clean: 49 | $(RM) $(PROG) *.o *.d 50 | 51 | test: 52 | $(run_cmd) ./$(PROG) $(ARGS) 53 | 54 | perf_build: release 55 | 56 | perf_run: 57 | $(run_cmd) ./$(PROG) $(PERF_RUN_ARGS) 58 | 59 | -------------------------------------------------------------------------------- /examples/concurrent_hash_map/count_strings/msvs/count_strings.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 2013 4 | VisualStudioVersion = 12.0.40629.0 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "count_strings", "count_strings.vcxproj", "{3AA40693-F93D-4D4B-B32E-068F511A252C}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Win32 = Debug|Win32 11 | Debug|x64 = Debug|x64 12 | Release|Win32 = Release|Win32 13 | Release|x64 = Release|x64 14 | EndGlobalSection 15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 16 | {3AA40693-F93D-4D4B-B32E-068F511A252C}.Debug|Win32.ActiveCfg = Debug|Win32 17 | {3AA40693-F93D-4D4B-B32E-068F511A252C}.Debug|Win32.Build.0 = Debug|Win32 18 | {3AA40693-F93D-4D4B-B32E-068F511A252C}.Debug|x64.ActiveCfg = Debug|x64 19 | {3AA40693-F93D-4D4B-B32E-068F511A252C}.Debug|x64.Build.0 = Debug|x64 20 | {3AA40693-F93D-4D4B-B32E-068F511A252C}.Release|Win32.ActiveCfg = Release|Win32 21 | {3AA40693-F93D-4D4B-B32E-068F511A252C}.Release|Win32.Build.0 = Release|Win32 22 | {3AA40693-F93D-4D4B-B32E-068F511A252C}.Release|x64.ActiveCfg = Release|x64 23 | {3AA40693-F93D-4D4B-B32E-068F511A252C}.Release|x64.Build.0 = Release|x64 24 | EndGlobalSection 25 | GlobalSection(SolutionProperties) = preSolution 26 | HideSolutionNode = FALSE 27 | EndGlobalSection 28 | EndGlobal 29 | -------------------------------------------------------------------------------- /examples/concurrent_priority_queue/shortpath/Makefile: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2005-2020 Intel Corporation 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | # GNU Makefile that builds and runs example. 16 | run_cmd= 17 | PROG=shortpath 18 | ARGS=4 N=1000 start=0 end=999 verbose 19 | PERF_RUN_ARGS=auto N=1000 start=0 end=99 silent 20 | 21 | # icpc by default 22 | ifneq (,$(shell which icc 2>/dev/null)) 23 | CXX=icpc 24 | endif 25 | 26 | ifeq ($(shell uname), Linux) 27 | ifeq ($(target), android) 28 | LIBS+= --sysroot=$(SYSROOT) 29 | run_cmd=../../common/android.linux.launcher.sh 30 | else 31 | LIBS+= -lrt 32 | endif 33 | else ifeq ($(shell uname), Darwin) 34 | override CXXFLAGS += -Wl,-rpath,$(TBBROOT)/lib 35 | endif 36 | 37 | include ../../common/examples-common.inc 38 | 39 | all: release test 40 | 41 | release: *.cpp 42 | $(CXX) -O2 -DNDEBUG $(CXXFLAGS) -o $(PROG) $^ -ltbb $(LIBS) $(CXX0XFLAGS) 43 | 44 | debug: *.cpp 45 | $(CXX) -O0 -g -DTBB_USE_DEBUG $(CXXFLAGS) -o $(PROG) $^ -ltbb_debug $(LIBS) $(CXX0XFLAGS) 46 | 47 | clean: 48 | $(RM) $(PROG) *.o *.d 49 | 50 | test: 51 | $(run_cmd) ./$(PROG) $(ARGS) 52 | 53 | perf_build: release 54 | 55 | perf_run: 56 | $(run_cmd) ./$(PROG) $(PERF_RUN_ARGS) 57 | -------------------------------------------------------------------------------- /examples/concurrent_priority_queue/shortpath/Makefile.windows: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2005-2020 Intel Corporation 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | # Common Makefile that builds and runs example. 16 | 17 | # Just specify your program basename 18 | PROG=shortpath 19 | ARGS=4 N=1000 start=0 end=999 verbose 20 | PERF_RUN_ARGS=auto N=1000 start=0 end=99 silent 21 | 22 | # Trying to find if icl.exe is set 23 | CXX1 = $(TBB_CXX)- 24 | CXX2 = $(CXX1:icl.exe-=icl.exe) 25 | CXX = $(CXX2:-=cl.exe) 26 | 27 | # The C++ compiler options 28 | MYCXXFLAGS = /TP /EHsc /W3 /nologo /D _CONSOLE /D _MBCS /D WIN32 /D _CRT_SECURE_NO_DEPRECATE $(CXXFLAGS) 29 | MYLDFLAGS =/INCREMENTAL:NO /NOLOGO /DEBUG /FIXED:NO $(LDFLAGS) 30 | 31 | all: release test 32 | release: 33 | $(CXX) *.cpp /MD /O2 /D NDEBUG $(MYCXXFLAGS) /link tbb.lib $(LIBS) $(MYLDFLAGS) /OUT:$(PROG).exe 34 | debug: 35 | $(CXX) *.cpp /MDd /Od /Zi /D TBB_USE_DEBUG /D _DEBUG $(MYCXXFLAGS) /link tbb_debug.lib $(LIBS) $(MYLDFLAGS) /OUT:$(PROG).exe 36 | clean: 37 | @cmd.exe /C del $(PROG).exe *.obj *.?db *.manifest 38 | test: 39 | $(PROG) $(ARGS) 40 | compiler_check: 41 | @$(CXX) >nul 2>&1 || echo "$(CXX) command not found. Check if CXX=$(CXX) is set properly" 42 | 43 | perf_build: release 44 | 45 | perf_run: 46 | $(PROG) $(PERF_RUN_ARGS) 47 | -------------------------------------------------------------------------------- /examples/concurrent_priority_queue/shortpath/msvs/shortpath.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 2013 4 | VisualStudioVersion = 12.0.40629.0 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shortpath", "shortpath.vcxproj", "{3AA40693-F93D-4D4B-B32E-068F511A252A}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Win32 = Debug|Win32 11 | Debug|x64 = Debug|x64 12 | Release|Win32 = Release|Win32 13 | Release|x64 = Release|x64 14 | EndGlobalSection 15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 16 | {3AA40693-F93D-4D4B-B32E-068F511A252A}.Debug|Win32.ActiveCfg = Debug|Win32 17 | {3AA40693-F93D-4D4B-B32E-068F511A252A}.Debug|Win32.Build.0 = Debug|Win32 18 | {3AA40693-F93D-4D4B-B32E-068F511A252A}.Debug|x64.ActiveCfg = Debug|x64 19 | {3AA40693-F93D-4D4B-B32E-068F511A252A}.Debug|x64.Build.0 = Debug|x64 20 | {3AA40693-F93D-4D4B-B32E-068F511A252A}.Release|Win32.ActiveCfg = Release|Win32 21 | {3AA40693-F93D-4D4B-B32E-068F511A252A}.Release|Win32.Build.0 = Release|Win32 22 | {3AA40693-F93D-4D4B-B32E-068F511A252A}.Release|x64.ActiveCfg = Release|x64 23 | {3AA40693-F93D-4D4B-B32E-068F511A252A}.Release|x64.Build.0 = Release|x64 24 | EndGlobalSection 25 | GlobalSection(SolutionProperties) = preSolution 26 | HideSolutionNode = FALSE 27 | EndGlobalSection 28 | EndGlobal 29 | -------------------------------------------------------------------------------- /examples/graph/binpack/Makefile: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2005-2020 Intel Corporation 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | # GNU Makefile that builds and runs example. 16 | run_cmd= 17 | PROG=binpack 18 | ARGS=4 N=1000 19 | PERF_RUN_ARGS=auto N=1000 silent 20 | 21 | # The C++ compiler 22 | ifneq (,$(shell which icc 2>/dev/null)) 23 | CXX=icc 24 | endif # which icc 25 | 26 | ifeq ($(shell uname), Linux) 27 | ifeq ($(target), android) 28 | LIBS+= --sysroot=$(SYSROOT) 29 | run_cmd=../../common/android.linux.launcher.sh 30 | else 31 | LIBS+= -lrt 32 | endif 33 | else ifeq ($(shell uname), Darwin) 34 | override CXXFLAGS += -Wl,-rpath,$(TBBROOT)/lib 35 | endif 36 | 37 | # autodetect C++11 support 38 | include ../../common/examples-common.inc 39 | 40 | all: release test 41 | 42 | release: *.cpp 43 | $(CXX) -O2 -DNDEBUG $(CXXFLAGS) -o $(PROG) $^ -ltbb $(LIBS) $(CXX0XFLAGS) 44 | 45 | debug: *.cpp 46 | $(CXX) -O0 -g -DTBB_USE_DEBUG $(CXXFLAGS) -o $(PROG) $^ -ltbb_debug $(LIBS) $(CXX0XFLAGS) 47 | 48 | profile: override CXXFLAGS += -DTBB_USE_THREADING_TOOLS -g 49 | profile: release 50 | 51 | clean: 52 | $(RM) $(PROG) *.o *.d 53 | 54 | test: 55 | $(run_cmd) ./$(PROG) $(ARGS) 56 | 57 | perf_build: release 58 | 59 | perf_run: 60 | $(run_cmd) ./$(PROG) $(PERF_RUN_ARGS) 61 | -------------------------------------------------------------------------------- /examples/graph/binpack/msvs/binpack.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 2013 4 | VisualStudioVersion = 12.0.40629.0 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "binpack", "binpack.vcxproj", "{C931C7A2-074E-4150-9E7A-39A03250411E}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Win32 = Debug|Win32 11 | Debug|x64 = Debug|x64 12 | Release|Win32 = Release|Win32 13 | Release|x64 = Release|x64 14 | EndGlobalSection 15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 16 | {C931C7A2-074E-4150-9E7A-39A03250411E}.Debug|Win32.ActiveCfg = Debug|Win32 17 | {C931C7A2-074E-4150-9E7A-39A03250411E}.Debug|Win32.Build.0 = Debug|Win32 18 | {C931C7A2-074E-4150-9E7A-39A03250411E}.Debug|x64.ActiveCfg = Debug|x64 19 | {C931C7A2-074E-4150-9E7A-39A03250411E}.Debug|x64.Build.0 = Debug|x64 20 | {C931C7A2-074E-4150-9E7A-39A03250411E}.Release|Win32.ActiveCfg = Release|Win32 21 | {C931C7A2-074E-4150-9E7A-39A03250411E}.Release|Win32.Build.0 = Release|Win32 22 | {C931C7A2-074E-4150-9E7A-39A03250411E}.Release|x64.ActiveCfg = Release|x64 23 | {C931C7A2-074E-4150-9E7A-39A03250411E}.Release|x64.Build.0 = Release|x64 24 | EndGlobalSection 25 | GlobalSection(SolutionProperties) = preSolution 26 | HideSolutionNode = FALSE 27 | EndGlobalSection 28 | EndGlobal 29 | -------------------------------------------------------------------------------- /examples/graph/cholesky/Makefile: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2005-2020 Intel Corporation 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | # GNU Makefile that builds and runs example. 16 | run_cmd= 17 | PROG=cholesky 18 | ARGS=4 2 19 | 20 | # The C++ compiler 21 | ifneq (,$(shell which icpc 2>/dev/null)) 22 | CXX=icpc 23 | endif # which icpc 24 | 25 | ifeq ($(shell uname), Darwin) 26 | override CXXFLAGS += -Wl,-rpath,$(TBBROOT)/lib -Wl,-rpath,$(MKLROOT)/lib 27 | # MKL support 28 | override MKL_LIBS += -lmkl_intel_lp64 -lmkl_sequential -lmkl_core 29 | else 30 | ifeq ($(shell uname), Linux) 31 | LIBS+= -lrt 32 | endif 33 | # MKL support 34 | override MKL_LIBS += -lmkl_rt 35 | endif 36 | 37 | # autodetect C++11 support 38 | include ../../common/examples-common.inc 39 | 40 | all: release test 41 | 42 | release: *.cpp 43 | $(CXX) -O2 -DNDEBUG $(CXXFLAGS) -o $(PROG) $^ -ltbb $(MKL_LIBS) $(LIBS) $(CXX0XFLAGS) 44 | 45 | debug: *.cpp 46 | $(CXX) -O0 -g -DTBB_USE_DEBUG $(CXXFLAGS) -o $(PROG) $^ -ltbb_debug $(MKL_LIBS) $(LIBS) $(CXX0XFLAGS) 47 | 48 | profile: override CXXFLAGS += -DTBB_USE_THREADING_TOOLS -g 49 | profile: release 50 | 51 | clean: 52 | $(RM) $(PROG) *.o *.d 53 | 54 | test: 55 | $(run_cmd) ./$(PROG) $(ARGS) 56 | -------------------------------------------------------------------------------- /examples/graph/cholesky/msvs/cholesky.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 2013 4 | VisualStudioVersion = 12.0.40629.0 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cholesky", "cholesky.vcxproj", "{3AA40693-F93D-4D4B-B32E-068F511A252E}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Win32 = Debug|Win32 11 | Debug|x64 = Debug|x64 12 | Release|Win32 = Release|Win32 13 | Release|x64 = Release|x64 14 | EndGlobalSection 15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 16 | {3AA40693-F93D-4D4B-B32E-068F511A252E}.Debug|Win32.ActiveCfg = Debug|Win32 17 | {3AA40693-F93D-4D4B-B32E-068F511A252E}.Debug|Win32.Build.0 = Debug|Win32 18 | {3AA40693-F93D-4D4B-B32E-068F511A252E}.Debug|x64.ActiveCfg = Debug|x64 19 | {3AA40693-F93D-4D4B-B32E-068F511A252E}.Debug|x64.Build.0 = Debug|x64 20 | {3AA40693-F93D-4D4B-B32E-068F511A252E}.Release|Win32.ActiveCfg = Release|Win32 21 | {3AA40693-F93D-4D4B-B32E-068F511A252E}.Release|Win32.Build.0 = Release|Win32 22 | {3AA40693-F93D-4D4B-B32E-068F511A252E}.Release|x64.ActiveCfg = Release|x64 23 | {3AA40693-F93D-4D4B-B32E-068F511A252E}.Release|x64.Build.0 = Release|x64 24 | EndGlobalSection 25 | GlobalSection(SolutionProperties) = preSolution 26 | HideSolutionNode = FALSE 27 | EndGlobalSection 28 | EndGlobal 29 | -------------------------------------------------------------------------------- /examples/graph/dining_philosophers/Makefile: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2005-2020 Intel Corporation 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | # GNU Makefile that builds and runs example. 16 | run_cmd= 17 | PROG=dining_philosophers 18 | ARGS= auto 5 19 | LIGHT_ARGS= auto 3 20 | 21 | ifneq (,$(shell which icc 2>/dev/null)) 22 | CXX=icc 23 | endif # icc 24 | 25 | ifeq ($(shell uname), Linux) 26 | ifeq ($(target), android) 27 | LIBS+= --sysroot=$(SYSROOT) 28 | run_cmd=../../common/android.linux.launcher.sh 29 | else 30 | LIBS+= -lrt 31 | endif 32 | else ifeq ($(shell uname), Darwin) 33 | override CXXFLAGS += -Wl,-rpath,$(TBBROOT)/lib 34 | endif 35 | 36 | # autodetect C++11 support 37 | include ../../common/examples-common.inc 38 | 39 | all: release test 40 | 41 | release: dining_philosophers.cpp 42 | $(CXX) -O2 -DNDEBUG -D_CONSOLE $(CXXFLAGS) -o $(PROG) $^ -ltbb $(LIBS) $(CXX0XFLAGS) 43 | 44 | debug: dining_philosophers.cpp 45 | $(CXX) -O0 -D_CONSOLE -g -DTBB_USE_DEBUG $(CXXFLAGS) -o $(PROG) $^ -ltbb_debug $(LIBS) $(CXX0XFLAGS) 46 | 47 | profile: override CXXFLAGS += -DTBB_USE_THREADING_TOOLS -g 48 | profile: release 49 | 50 | clean: 51 | rm -f $(PROG) *.o *.d 52 | 53 | test: 54 | $(run_cmd) ./$(PROG) $(ARGS) 55 | 56 | light_test: 57 | $(run_cmd) ./$(PROG) $(LIGHT_ARGS) 58 | -------------------------------------------------------------------------------- /examples/graph/dining_philosophers/Makefile.windows: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2005-2020 Intel Corporation 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | # Common Makefile that builds and runs example. 16 | 17 | # Just specify your program basename 18 | PROG=dining_philosophers 19 | ARGS= auto 5 20 | LIGHT_ARGS= auto 3 21 | 22 | # Trying to find if icl.exe is set 23 | CXX1 = $(TBB_CXX)- 24 | CXX2 = $(CXX1:icl.exe-=icl.exe) 25 | CXX = $(CXX2:-=cl.exe) 26 | 27 | # The C++ compiler options 28 | MYCXXFLAGS = /TP /EHsc /W3 /nologo /D _CONSOLE /D _MBCS /D WIN32 /D _CRT_SECURE_NO_DEPRECATE $(CXXFLAGS) 29 | MYLDFLAGS =/INCREMENTAL:NO /NOLOGO /DEBUG /FIXED:NO $(LDFLAGS) 30 | 31 | all: release test 32 | release: 33 | $(CXX) ./dining_philosophers.cpp /MD /O2 /D NDEBUG $(MYCXXFLAGS) /link tbb.lib $(LIBS) $(MYLDFLAGS) /OUT:$(PROG).exe 34 | debug: 35 | $(CXX) ./dining_philosophers.cpp /MDd /Od /Zi /D _DEBUG $(MYCXXFLAGS) /link tbb_debug.lib $(LIBS) $(MYLDFLAGS) /OUT:$(PROG).exe 36 | profile: 37 | $(CXX) ./dining_philosophers.cpp /MD /O2 /Zi /D NDEBUG $(MYCXXFLAGS) /D TBB_USE_THREADING_TOOLS /link tbb.lib $(LIBS) $(MYLDFLAGS) /OUT:$(PROG).exe 38 | clean: 39 | @cmd.exe /C del $(PROG).exe *.obj *.?db *.manifest 40 | test: 41 | $(PROG) $(ARGS) 42 | light_test: 43 | $(PROG) $(LIGHT_ARGS) 44 | 45 | -------------------------------------------------------------------------------- /examples/graph/dining_philosophers/msvs/dining_philosophers.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 2013 4 | VisualStudioVersion = 12.0.40629.0 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dining_philosophers", "dining_philosophers.vcxproj", "{3894D1D2-A574-4937-AD56-726758EFE5B7}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Win32 = Debug|Win32 11 | Debug|x64 = Debug|x64 12 | Release|Win32 = Release|Win32 13 | Release|x64 = Release|x64 14 | EndGlobalSection 15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 16 | {3894D1D2-A574-4937-AD56-726758EFE5B7}.Debug|Win32.ActiveCfg = Debug|Win32 17 | {3894D1D2-A574-4937-AD56-726758EFE5B7}.Debug|Win32.Build.0 = Debug|Win32 18 | {3894D1D2-A574-4937-AD56-726758EFE5B7}.Debug|x64.ActiveCfg = Debug|x64 19 | {3894D1D2-A574-4937-AD56-726758EFE5B7}.Debug|x64.Build.0 = Debug|x64 20 | {3894D1D2-A574-4937-AD56-726758EFE5B7}.Release|Win32.ActiveCfg = Release|Win32 21 | {3894D1D2-A574-4937-AD56-726758EFE5B7}.Release|Win32.Build.0 = Release|Win32 22 | {3894D1D2-A574-4937-AD56-726758EFE5B7}.Release|x64.ActiveCfg = Release|x64 23 | {3894D1D2-A574-4937-AD56-726758EFE5B7}.Release|x64.Build.0 = Release|x64 24 | EndGlobalSection 25 | GlobalSection(SolutionProperties) = preSolution 26 | HideSolutionNode = FALSE 27 | EndGlobalSection 28 | EndGlobal 29 | -------------------------------------------------------------------------------- /examples/graph/fgbzip2/Makefile: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2005-2020 Intel Corporation 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | # GNU Makefile that builds and runs example. 16 | 17 | run_cmd= 18 | PROG=fgbzip2 19 | ARGS=-b=9 -a=async_node $(PROG) 20 | PERF_RUN_ARGS=-b=9 -a=async_node $(PROG) 21 | 22 | # icpc by default 23 | ifneq (,$(shell which icc 2>/dev/null)) 24 | CXX=icpc 25 | endif 26 | 27 | ifeq ($(shell uname), Linux) 28 | LIBS+= -lrt -lpthread 29 | else ifeq ($(shell uname), Darwin) 30 | override CXXFLAGS += -Wl,-rpath,$(TBBROOT)/lib 31 | endif 32 | 33 | # autodetect C++11 support 34 | include ../../common/examples-common.inc 35 | 36 | all: release test 37 | 38 | release: 39 | $(CXX) -O2 -DNDEBUG *.cpp $(CXXFLAGS) -o $(PROG) -ltbb $(LIBS) $(CXX0XFLAGS) 40 | 41 | debug: 42 | $(CXX) -O0 -g -DTBB_USE_DEBUG *.cpp $(CXXFLAGS) -o $(PROG) -ltbb_debug $(LIBS) $(CXX0XFLAGS) 43 | 44 | profile: override CXXFLAGS += -DTBB_USE_THREADING_TOOLS -g 45 | profile: release 46 | 47 | clean: 48 | $(RM) $(PROG) *.o *.d *.bz2 49 | 50 | test: 51 | $(run_cmd) ./$(PROG) $(ARGS) 52 | 53 | perf_build: release 54 | 55 | perf_run: 56 | $(run_cmd) ./$(PROG) $(PERF_RUN_ARGS) 57 | -------------------------------------------------------------------------------- /examples/graph/fgbzip2/msvs/fgbzip2.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 2013 4 | VisualStudioVersion = 12.0.40629.0 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fgbzip2", "fgbzip2.vcxproj", "{C931C7A2-074E-4150-9E7A-39A03250411E}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Win32 = Debug|Win32 11 | Debug|x64 = Debug|x64 12 | Release|Win32 = Release|Win32 13 | Release|x64 = Release|x64 14 | EndGlobalSection 15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 16 | {C931C7A2-074E-4150-9E7A-39A03250411E}.Debug|Win32.ActiveCfg = Debug|Win32 17 | {C931C7A2-074E-4150-9E7A-39A03250411E}.Debug|Win32.Build.0 = Debug|Win32 18 | {C931C7A2-074E-4150-9E7A-39A03250411E}.Debug|x64.ActiveCfg = Debug|x64 19 | {C931C7A2-074E-4150-9E7A-39A03250411E}.Debug|x64.Build.0 = Debug|x64 20 | {C931C7A2-074E-4150-9E7A-39A03250411E}.Release|Win32.ActiveCfg = Release|Win32 21 | {C931C7A2-074E-4150-9E7A-39A03250411E}.Release|Win32.Build.0 = Release|Win32 22 | {C931C7A2-074E-4150-9E7A-39A03250411E}.Release|x64.ActiveCfg = Release|x64 23 | {C931C7A2-074E-4150-9E7A-39A03250411E}.Release|x64.Build.0 = Release|x64 24 | EndGlobalSection 25 | GlobalSection(SolutionProperties) = preSolution 26 | HideSolutionNode = FALSE 27 | EndGlobalSection 28 | EndGlobal 29 | -------------------------------------------------------------------------------- /examples/graph/logic_sim/Makefile: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2005-2020 Intel Corporation 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | # GNU Makefile that builds and runs example. 16 | run_cmd= 17 | PROG=test_all 18 | ARGS=4 19 | PERF_RUN_ARGS=auto silent 20 | 21 | # The C++ compiler 22 | ifneq (,$(shell which icc 2>/dev/null)) 23 | CXX=icc 24 | endif # which icc 25 | 26 | ifeq ($(shell uname), Linux) 27 | ifeq ($(target), android) 28 | LIBS+= --sysroot=$(SYSROOT) 29 | run_cmd=../../common/android.linux.launcher.sh 30 | else 31 | LIBS+= -lrt 32 | endif 33 | else ifeq ($(shell uname), Darwin) 34 | override CXXFLAGS += -Wl,-rpath,$(TBBROOT)/lib 35 | endif 36 | 37 | # autodetect C++11 support 38 | include ../../common/examples-common.inc 39 | 40 | all: release test 41 | 42 | release: *.cpp 43 | $(CXX) -O2 -DNDEBUG $(CXXFLAGS) -o $(PROG) $(PROG).cpp -std=c++11 -ltbb $(LIBS) $(CXX0XFLAGS) 44 | 45 | debug: *.cpp 46 | $(CXX) -O0 -g -DTBB_USE_DEBUG $(CXXFLAGS) -o $(PROG) $(PROG).cpp -std=c++11 -ltbb_debug $(LIBS) $(CXX0XFLAGS) 47 | 48 | profile: override CXXFLAGS += -DTBB_USE_THREADING_TOOLS -g 49 | profile: release 50 | 51 | clean: 52 | $(RM) $(PROG) *.o *.d 53 | 54 | test: 55 | $(run_cmd) ./$(PROG) $(ARGS) 56 | 57 | perf_build: release 58 | 59 | perf_run: 60 | $(run_cmd) ./$(PROG) $(PERF_RUN_ARGS) 61 | -------------------------------------------------------------------------------- /examples/graph/logic_sim/msvs/logic_sim.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 2013 4 | VisualStudioVersion = 12.0.40629.0 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "logic_sim", "logic_sim.vcxproj", "{6E9B1702-78E0-4D64-B771-8B274D963B58}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Win32 = Debug|Win32 11 | Debug|x64 = Debug|x64 12 | Release|Win32 = Release|Win32 13 | Release|x64 = Release|x64 14 | EndGlobalSection 15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 16 | {6E9B1702-78E0-4D64-B771-8B274D963B58}.Debug|Win32.ActiveCfg = Debug|Win32 17 | {6E9B1702-78E0-4D64-B771-8B274D963B58}.Debug|Win32.Build.0 = Debug|Win32 18 | {6E9B1702-78E0-4D64-B771-8B274D963B58}.Debug|x64.ActiveCfg = Debug|x64 19 | {6E9B1702-78E0-4D64-B771-8B274D963B58}.Debug|x64.Build.0 = Debug|x64 20 | {6E9B1702-78E0-4D64-B771-8B274D963B58}.Release|Win32.ActiveCfg = Release|Win32 21 | {6E9B1702-78E0-4D64-B771-8B274D963B58}.Release|Win32.Build.0 = Release|Win32 22 | {6E9B1702-78E0-4D64-B771-8B274D963B58}.Release|x64.ActiveCfg = Release|x64 23 | {6E9B1702-78E0-4D64-B771-8B274D963B58}.Release|x64.Build.0 = Release|x64 24 | EndGlobalSection 25 | GlobalSection(SolutionProperties) = preSolution 26 | HideSolutionNode = FALSE 27 | EndGlobalSection 28 | EndGlobal 29 | -------------------------------------------------------------------------------- /examples/graph/som/Makefile.windows: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2005-2020 Intel Corporation 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | # Common Makefile that builds and runs example. 16 | 17 | # Just specify your program basename 18 | PROG=som 19 | ARGS= 20 | LIGHT_ARGS=4 21 | 22 | # Trying to find if icl.exe is set 23 | CXX1 = $(TBB_CXX)- 24 | CXX2 = $(CXX1:icl.exe-=icl.exe) 25 | CXX = $(CXX2:-=cl.exe) 26 | 27 | # The C++ compiler options 28 | MYCXXFLAGS = /TP /EHsc /W3 /nologo /D _CONSOLE /D _MBCS /D WIN32 /D _CRT_SECURE_NO_DEPRECATE $(CXXFLAGS) 29 | MYLDFLAGS =/INCREMENTAL:NO /NOLOGO /DEBUG /FIXED:NO $(LDFLAGS) 30 | 31 | all: release test 32 | release: 33 | $(CXX) ./som_graph.cpp ./som.cpp /MD /O2 /D NDEBUG $(MYCXXFLAGS) /link tbb.lib $(LIBS) $(MYLDFLAGS) /OUT:$(PROG).exe 34 | debug: 35 | $(CXX) ./som_graph.cpp ./som.cpp /MDd /Od /Zi /D _DEBUG $(MYCXXFLAGS) /link tbb_debug.lib $(LIBS) $(MYLDFLAGS) /OUT:$(PROG).exe 36 | profile: 37 | $(CXX) ./som_graph.cpp ./som.cpp /MD /O2 /Zi /D NDEBUG $(MYCXXFLAGS) /D TBB_USE_THREADING_TOOLS /link tbb.lib $(LIBS) $(MYLDFLAGS) /OUT:$(PROG).exe 38 | clean: 39 | @cmd.exe /C del $(PROG).exe *.obj *.?db *.manifest 40 | test: 41 | $(PROG) $(ARGS) 42 | light_test: 43 | $(PROG) $(LIGHT_ARGS) 44 | 45 | -------------------------------------------------------------------------------- /examples/graph/som/msvs/som.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 2013 4 | VisualStudioVersion = 12.0.40629.0 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "som", "som.vcxproj", "{B2AE2EDC-697B-4C85-AC0D-E3E523D20D6D}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Win32 = Debug|Win32 11 | Debug|x64 = Debug|x64 12 | Release|Win32 = Release|Win32 13 | Release|x64 = Release|x64 14 | EndGlobalSection 15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 16 | {B2AE2EDC-697B-4C85-AC0D-E3E523D20D6D}.Debug|Win32.ActiveCfg = Debug|Win32 17 | {B2AE2EDC-697B-4C85-AC0D-E3E523D20D6D}.Debug|Win32.Build.0 = Debug|Win32 18 | {B2AE2EDC-697B-4C85-AC0D-E3E523D20D6D}.Debug|x64.ActiveCfg = Debug|x64 19 | {B2AE2EDC-697B-4C85-AC0D-E3E523D20D6D}.Debug|x64.Build.0 = Debug|x64 20 | {B2AE2EDC-697B-4C85-AC0D-E3E523D20D6D}.Release|Win32.ActiveCfg = Release|Win32 21 | {B2AE2EDC-697B-4C85-AC0D-E3E523D20D6D}.Release|Win32.Build.0 = Release|Win32 22 | {B2AE2EDC-697B-4C85-AC0D-E3E523D20D6D}.Release|x64.ActiveCfg = Release|x64 23 | {B2AE2EDC-697B-4C85-AC0D-E3E523D20D6D}.Release|x64.Build.0 = Release|x64 24 | EndGlobalSection 25 | GlobalSection(SolutionProperties) = preSolution 26 | HideSolutionNode = FALSE 27 | EndGlobalSection 28 | EndGlobal 29 | -------------------------------------------------------------------------------- /examples/graph/stereo/msvs/stereo.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 2013 4 | VisualStudioVersion = 12.0.40629.0 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "stereo", "stereo.vcxproj", "{9C777D75-70FF-4C24-AB74-EBCDF3328AB9}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Win32 = Debug|Win32 11 | Debug|x64 = Debug|x64 12 | Release|Win32 = Release|Win32 13 | Release|x64 = Release|x64 14 | EndGlobalSection 15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 16 | {9C777D75-70FF-4C24-AB74-EBCDF3328AB9}.Debug|Win32.ActiveCfg = Debug|Win32 17 | {9C777D75-70FF-4C24-AB74-EBCDF3328AB9}.Debug|Win32.Build.0 = Debug|Win32 18 | {9C777D75-70FF-4C24-AB74-EBCDF3328AB9}.Debug|x64.ActiveCfg = Debug|x64 19 | {9C777D75-70FF-4C24-AB74-EBCDF3328AB9}.Debug|x64.Build.0 = Debug|x64 20 | {9C777D75-70FF-4C24-AB74-EBCDF3328AB9}.Release|Win32.ActiveCfg = Release|Win32 21 | {9C777D75-70FF-4C24-AB74-EBCDF3328AB9}.Release|Win32.Build.0 = Release|Win32 22 | {9C777D75-70FF-4C24-AB74-EBCDF3328AB9}.Release|x64.ActiveCfg = Release|x64 23 | {9C777D75-70FF-4C24-AB74-EBCDF3328AB9}.Release|x64.Build.0 = Release|x64 24 | EndGlobalSection 25 | GlobalSection(SolutionProperties) = preSolution 26 | HideSolutionNode = FALSE 27 | EndGlobalSection 28 | EndGlobal 29 | -------------------------------------------------------------------------------- /examples/parallel_do/parallel_preorder/msvs/parallel_preorder.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 2013 4 | VisualStudioVersion = 12.0.40629.0 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "parallel_preorder", "parallel_preorder.vcxproj", "{3AA40693-F93D-4D4B-B32E-068F511A252B}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Win32 = Debug|Win32 11 | Debug|x64 = Debug|x64 12 | Release|Win32 = Release|Win32 13 | Release|x64 = Release|x64 14 | EndGlobalSection 15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 16 | {3AA40693-F93D-4D4B-B32E-068F511A252B}.Debug|Win32.ActiveCfg = Debug|Win32 17 | {3AA40693-F93D-4D4B-B32E-068F511A252B}.Debug|Win32.Build.0 = Debug|Win32 18 | {3AA40693-F93D-4D4B-B32E-068F511A252B}.Debug|x64.ActiveCfg = Debug|x64 19 | {3AA40693-F93D-4D4B-B32E-068F511A252B}.Debug|x64.Build.0 = Debug|x64 20 | {3AA40693-F93D-4D4B-B32E-068F511A252B}.Release|Win32.ActiveCfg = Release|Win32 21 | {3AA40693-F93D-4D4B-B32E-068F511A252B}.Release|Win32.Build.0 = Release|Win32 22 | {3AA40693-F93D-4D4B-B32E-068F511A252B}.Release|x64.ActiveCfg = Release|x64 23 | {3AA40693-F93D-4D4B-B32E-068F511A252B}.Release|x64.Build.0 = Release|x64 24 | EndGlobalSection 25 | GlobalSection(SolutionProperties) = preSolution 26 | HideSolutionNode = FALSE 27 | EndGlobalSection 28 | EndGlobal 29 | -------------------------------------------------------------------------------- /examples/parallel_for/game_of_life/Makefile: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2005-2020 Intel Corporation 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | # GNU Makefile that builds and runs example. 16 | run_cmd= 17 | PROG=game_of_life 18 | ARGS=2:4 -t 5 19 | LIGHT_ARGS=1:2 -t 5 20 | ifneq (,$(shell which icc 2>/dev/null)) 21 | CXX=icc 22 | endif # icc 23 | 24 | ifeq ($(shell uname), Linux) 25 | ifeq ($(target), android) 26 | LIBS+= --sysroot=$(SYSROOT) 27 | run_cmd=../../common/android.linux.launcher.sh 28 | else 29 | LIBS+= -lrt 30 | endif 31 | else ifeq ($(shell uname), Darwin) 32 | override CXXFLAGS += -Wl,-rpath,$(TBBROOT)/lib 33 | endif 34 | 35 | # autodetect C++11 support 36 | include ../../common/examples-common.inc 37 | 38 | all: release test 39 | 40 | release: src/Evolution.cpp src/Update_state.cpp src/Game_of_life.cpp 41 | $(CXX) -O2 -DNDEBUG -D_CONSOLE $(CXXFLAGS) -o $(PROG) $^ -ltbb $(LIBS) $(CXX0XFLAGS) 42 | 43 | debug: src/Evolution.cpp src/Update_state.cpp src/Game_of_life.cpp 44 | $(CXX) -O0 -D_CONSOLE -g -DTBB_USE_DEBUG $(CXXFLAGS) -o $(PROG) $^ -ltbb_debug $(LIBS) $(CXX0XFLAGS) 45 | 46 | clean: 47 | rm -f $(PROG) *.o *.d 48 | 49 | test: 50 | $(run_cmd) ./$(PROG) $(ARGS) 51 | light_test: 52 | $(run_cmd) ./$(PROG) $(LIGHT_ARGS) 53 | -------------------------------------------------------------------------------- /examples/parallel_for/game_of_life/Makefile.windows: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2005-2020 Intel Corporation 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | # Common Makefile that builds and runs example. 16 | 17 | # Just specify your program basename 18 | PROG=game_of_life 19 | ARGS=2:4 -t 5 20 | LIGHT_ARGS=1:2 -t 5 21 | 22 | # Trying to find if icl.exe is set 23 | CXX1 = $(TBB_CXX)- 24 | CXX2 = $(CXX1:icl.exe-=icl.exe) 25 | CXX = $(CXX2:-=cl.exe) 26 | 27 | # The C++ compiler options 28 | MYCXXFLAGS = /TP /EHsc /W3 /nologo /D _CONSOLE /D _MBCS /D WIN32 /D _CRT_SECURE_NO_DEPRECATE $(CXXFLAGS) 29 | MYLDFLAGS =/INCREMENTAL:NO /NOLOGO /DEBUG /FIXED:NO $(LDFLAGS) 30 | 31 | all: release test 32 | release: 33 | $(CXX) ./src/Evolution.cpp ./src/Game_of_life.cpp ./src/Update_state.cpp /MD /O2 /D NDEBUG $(MYCXXFLAGS) /link tbb.lib $(LIBS) $(MYLDFLAGS) /OUT:$(PROG).exe 34 | debug: 35 | $(CXX) ./src/Evolution.cpp ./src/Game_of_life.cpp ./src/Update_state.cpp /MDd /Od /Zi /D _DEBUG $(MYCXXFLAGS) /link tbb_debug.lib $(LIBS) $(MYLDFLAGS) /OUT:$(PROG).exe 36 | clean: 37 | @cmd.exe /C del $(PROG).exe *.obj *.?db *.manifest 38 | test: 39 | $(PROG) $(ARGS) 40 | light_test: 41 | $(PROG) $(LIGHT_ARGS) 42 | 43 | -------------------------------------------------------------------------------- /examples/parallel_for/game_of_life/msvs/app.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wjakob/tbb/9e219e24fe223b299783200f217e9d27790a87b0/examples/parallel_for/game_of_life/msvs/app.ico -------------------------------------------------------------------------------- /examples/parallel_for/game_of_life/msvs/app.rc: -------------------------------------------------------------------------------- 1 | // Microsoft Visual C++ generated resource script. 2 | // 3 | #include "resource.h" 4 | 5 | #define APSTUDIO_READONLY_SYMBOLS 6 | 7 | ///////////////////////////////////////////////////////////////////////////// 8 | #undef APSTUDIO_READONLY_SYMBOLS 9 | 10 | ///////////////////////////////////////////////////////////////////////////// 11 | // English (U.S.) resources 12 | 13 | 14 | ///////////////////////////////////////////////////////////////////////////// 15 | // 16 | // Icon 17 | // 18 | 19 | // Icon placed first or with lowest ID value becomes application icon 20 | 21 | LANGUAGE 9, 1 22 | #pragma code_page(1252) 23 | 1 ICON "app.ico" 24 | 25 | #ifdef APSTUDIO_INVOKED 26 | ///////////////////////////////////////////////////////////////////////////// 27 | // 28 | // TEXTINCLUDE 29 | // 30 | 31 | 1 TEXTINCLUDE 32 | BEGIN 33 | "resource.h\0" 34 | "\0" 35 | END 36 | 37 | 2 TEXTINCLUDE 38 | BEGIN 39 | "#include ""afxres.h""\r\n" 40 | "\0" 41 | END 42 | 43 | 3 TEXTINCLUDE 44 | BEGIN 45 | "\0" 46 | END 47 | 48 | #endif // APSTUDIO_INVOKED 49 | 50 | ///////////////////////////////////////////////////////////////////////////// 51 | 52 | 53 | 54 | #ifndef APSTUDIO_INVOKED 55 | ///////////////////////////////////////////////////////////////////////////// 56 | // 57 | // Generated from the TEXTINCLUDE 3 resource. 58 | // 59 | 60 | 61 | ///////////////////////////////////////////////////////////////////////////// 62 | #endif // not APSTUDIO_INVOKED 63 | 64 | -------------------------------------------------------------------------------- /examples/parallel_for/game_of_life/msvs/resource.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | //{{NO_DEPENDENCIES}} 18 | // Microsoft Visual C++ generated include file. 19 | // Used by app.rc 20 | -------------------------------------------------------------------------------- /examples/parallel_for/polygon_overlay/msvs/pover.rc: -------------------------------------------------------------------------------- 1 | // Microsoft Visual C++ generated resource script. 2 | // 3 | #include "resource.h" 4 | 5 | #define APSTUDIO_READONLY_SYMBOLS 6 | ///////////////////////////////////////////////////////////////////////////// 7 | // 8 | // Generated from the TEXTINCLUDE 2 resource. 9 | // 10 | #include "afxres.h" 11 | 12 | ///////////////////////////////////////////////////////////////////////////// 13 | #undef APSTUDIO_READONLY_SYMBOLS 14 | 15 | ///////////////////////////////////////////////////////////////////////////// 16 | // English (U.S.) resources 17 | 18 | #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) 19 | LANGUAGE 9, 1 20 | #pragma code_page(1252) 21 | 22 | #ifdef APSTUDIO_INVOKED 23 | ///////////////////////////////////////////////////////////////////////////// 24 | // 25 | // TEXTINCLUDE 26 | // 27 | 28 | 1 TEXTINCLUDE 29 | BEGIN 30 | "resource.h\0" 31 | END 32 | 33 | 2 TEXTINCLUDE 34 | BEGIN 35 | "#include ""afxres.h""\r\n" 36 | "\0" 37 | END 38 | 39 | 3 TEXTINCLUDE 40 | BEGIN 41 | "\r\n" 42 | "\0" 43 | END 44 | 45 | #endif // APSTUDIO_INVOKED 46 | 47 | #endif // English (U.S.) resources 48 | ///////////////////////////////////////////////////////////////////////////// 49 | 50 | 51 | 52 | #ifndef APSTUDIO_INVOKED 53 | ///////////////////////////////////////////////////////////////////////////// 54 | // 55 | // Generated from the TEXTINCLUDE 3 resource. 56 | // 57 | 58 | 59 | ///////////////////////////////////////////////////////////////////////////// 60 | #endif // not APSTUDIO_INVOKED 61 | 62 | -------------------------------------------------------------------------------- /examples/parallel_for/polygon_overlay/msvs/resource.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | //{{NO_DEPENDENCIES}} 18 | // Microsoft Visual C++ generated include file. 19 | // Used by pover.rc 20 | 21 | // Next default values for new objects 22 | // 23 | #ifdef APSTUDIO_INVOKED 24 | #ifndef APSTUDIO_READONLY_SYMBOLS 25 | #define _APS_NEXT_RESOURCE_VALUE 101 26 | #define _APS_NEXT_COMMAND_VALUE 40001 27 | #define _APS_NEXT_CONTROL_VALUE 1001 28 | #define _APS_NEXT_SYMED_VALUE 101 29 | #endif 30 | #endif 31 | -------------------------------------------------------------------------------- /examples/parallel_for/polygon_overlay/polymain.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #include "pover_global.h" // for declaration of DEFINE and INIT 18 | 19 | DEFINE Polygon_map_t *gPolymap1 INIT(0); 20 | DEFINE Polygon_map_t *gPolymap2 INIT(0); 21 | DEFINE Polygon_map_t *gResultMap INIT(0); 22 | 23 | extern void Usage(int argc, char **argv); 24 | 25 | extern bool ParseCmdLine(int argc, char **argv ); 26 | 27 | extern bool GenerateMap(Polygon_map_t **newMap, int xSize, int ySize, int gNPolygons, colorcomp_t maxR, colorcomp_t maxG, colorcomp_t maxB); 28 | 29 | extern bool PolygonsOverlap(RPolygon *p1, RPolygon *p2, int &xl, int &yl, int &xh, int &yh); 30 | 31 | extern void CheckPolygonMap(Polygon_map_t *checkMap); 32 | 33 | extern bool CompOnePolygon(RPolygon *p1, RPolygon *p2); 34 | 35 | extern bool PolygonsEqual(RPolygon *p1, RPolygon *p2); 36 | 37 | extern bool ComparePolygonMaps(Polygon_map_t *map1, Polygon_map_t *map2); 38 | 39 | extern void SetRandomSeed(int newSeed); 40 | 41 | extern int NextRan(int n); 42 | -------------------------------------------------------------------------------- /examples/parallel_for/polygon_overlay/polyover.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | /*! 18 | * polyover.h : extern declarations for polyover.cpp 19 | */ 20 | #include "rpolygon.h" 21 | #include "tbb/spin_mutex.h" 22 | 23 | extern void OverlayOnePolygonWithMap(Polygon_map_t *resultMap, RPolygon *myPoly, Polygon_map_t *map2, tbb::spin_mutex *rMutex); 24 | 25 | extern void SerialOverlayMaps(Polygon_map_t **resultMap, Polygon_map_t *map1, Polygon_map_t *map2); 26 | 27 | // extern void NaiveParallelOverlay(Polygon_map_t **result_map, Polygon_map_t *polymap1, Polygon_map_t *polymap2); 28 | extern void NaiveParallelOverlay(Polygon_map_t *&result_map, Polygon_map_t &polymap1, Polygon_map_t &polymap2); 29 | 30 | extern void SplitParallelOverlay(Polygon_map_t **result_map, Polygon_map_t *polymap1, Polygon_map_t *polymap2); 31 | extern void SplitParallelOverlayCV(concurrent_Polygon_map_t **result_map, Polygon_map_t *polymap1, Polygon_map_t *polymap2); 32 | extern void SplitParallelOverlayETS(ETS_Polygon_map_t **result_map, Polygon_map_t *polymap1, Polygon_map_t *polymap2); 33 | 34 | extern void CheckPolygonMap(Polygon_map_t *checkMap); 35 | extern bool ComparePolygonMaps(Polygon_map_t *map1, Polygon_map_t *map2); 36 | 37 | -------------------------------------------------------------------------------- /examples/parallel_for/polygon_overlay/speedup.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wjakob/tbb/9e219e24fe223b299783200f217e9d27790a87b0/examples/parallel_for/polygon_overlay/speedup.gif -------------------------------------------------------------------------------- /examples/parallel_for/seismic/msvs/SeismicSimulation.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wjakob/tbb/9e219e24fe223b299783200f217e9d27790a87b0/examples/parallel_for/seismic/msvs/SeismicSimulation.ico -------------------------------------------------------------------------------- /examples/parallel_for/seismic/msvs/small.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wjakob/tbb/9e219e24fe223b299783200f217e9d27790a87b0/examples/parallel_for/seismic/msvs/small.ico -------------------------------------------------------------------------------- /examples/parallel_for/seismic/seismic_video.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #ifndef SEISMIC_VIDEO_H_ 18 | #define SEISMIC_VIDEO_H_ 19 | 20 | #include "../../common/gui/video.h" 21 | 22 | class Universe; 23 | 24 | class SeismicVideo : public video 25 | { 26 | #ifdef _WINDOWS 27 | #define MAX_LOADSTRING 100 28 | TCHAR szWindowClass[MAX_LOADSTRING]; // the main window class name 29 | WNDCLASSEX wcex; 30 | #endif 31 | static const char * const titles[2]; 32 | 33 | bool initIsParallel ; 34 | 35 | Universe &u_; 36 | int numberOfFrames_; // 0 means forever, positive means number of frames, negative is undefined 37 | int threadsHigh; 38 | private: 39 | void on_mouse(int x, int y, int key); 40 | void on_process(); 41 | 42 | #ifdef _WINDOWS 43 | public: 44 | #endif 45 | void on_key(int key); 46 | 47 | public: 48 | SeismicVideo( Universe &u,int numberOfFrames, int threadsHigh, bool initIsParallel=true); 49 | }; 50 | #endif /* SEISMIC_VIDEO_H_ */ 51 | -------------------------------------------------------------------------------- /examples/parallel_for/tachyon/msvs/gui.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wjakob/tbb/9e219e24fe223b299783200f217e9d27790a87b0/examples/parallel_for/tachyon/msvs/gui.ico -------------------------------------------------------------------------------- /examples/parallel_for/tachyon/msvs/resource.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #define IDC_MYICON 2 18 | #define IDD_GUI 102 19 | #define IDS_APP_TITLE 103 20 | #define IDI_GUI 107 21 | #define IDI_SMALL 108 22 | #define IDC_GUI 109 23 | #define IDR_MAINFRAME 128 24 | #define IDC_STATIC -1 25 | -------------------------------------------------------------------------------- /examples/parallel_for/tachyon/msvs/small.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wjakob/tbb/9e219e24fe223b299783200f217e9d27790a87b0/examples/parallel_for/tachyon/msvs/small.ico -------------------------------------------------------------------------------- /examples/parallel_for/tachyon/msvs/uwp/App.xaml: -------------------------------------------------------------------------------- 1 |  6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /examples/parallel_for/tachyon/msvs/uwp/App.xaml.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | 18 | #pragma once 19 | 20 | #include "App.g.h" 21 | #include "DirectXPage.xaml.h" 22 | 23 | namespace tbbTachyon 24 | { 25 | /// 26 | /// Provides application-specific behavior to supplement the default Application class. 27 | /// 28 | ref class App sealed 29 | { 30 | public: 31 | App(); 32 | virtual void OnLaunched(Windows::ApplicationModel::Activation::LaunchActivatedEventArgs^ pArgs) override; 33 | 34 | private: 35 | DirectXPage^ m_directXPage; 36 | }; 37 | } 38 | -------------------------------------------------------------------------------- /examples/parallel_for/tachyon/msvs/uwp/Assets/Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wjakob/tbb/9e219e24fe223b299783200f217e9d27790a87b0/examples/parallel_for/tachyon/msvs/uwp/Assets/Logo.png -------------------------------------------------------------------------------- /examples/parallel_for/tachyon/msvs/uwp/Assets/SmallLogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wjakob/tbb/9e219e24fe223b299783200f217e9d27790a87b0/examples/parallel_for/tachyon/msvs/uwp/Assets/SmallLogo.png -------------------------------------------------------------------------------- /examples/parallel_for/tachyon/msvs/uwp/Assets/SplashScreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wjakob/tbb/9e219e24fe223b299783200f217e9d27790a87b0/examples/parallel_for/tachyon/msvs/uwp/Assets/SplashScreen.png -------------------------------------------------------------------------------- /examples/parallel_for/tachyon/msvs/uwp/Assets/StoreLogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wjakob/tbb/9e219e24fe223b299783200f217e9d27790a87b0/examples/parallel_for/tachyon/msvs/uwp/Assets/StoreLogo.png -------------------------------------------------------------------------------- /examples/parallel_for/tachyon/msvs/uwp/DirectXPage.xaml.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #pragma once 18 | 19 | #include "DirectXPage.g.h" 20 | #include "tbbTachyonRenderer.h" 21 | 22 | namespace tbbTachyon 23 | { 24 | [Windows::Foundation::Metadata::WebHostHidden] 25 | public ref class DirectXPage sealed 26 | { 27 | public: 28 | DirectXPage(); 29 | 30 | private: 31 | ~DirectXPage(); 32 | void OnRendering(Object^ sender, Object^ args); 33 | 34 | Windows::Foundation::EventRegistrationToken m_eventToken; 35 | 36 | tbbTachyonRenderer^ m_renderer; 37 | bool m_renderNeeded; 38 | int m_number_of_threads; 39 | 40 | void ThreadsSliderValueChanged(Platform::Object^ sender, Windows::UI::Xaml::Controls::Primitives::RangeBaseValueChangedEventArgs^ e); 41 | void ThreadsApply_Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e); 42 | void Exit_Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e); 43 | }; 44 | } 45 | -------------------------------------------------------------------------------- /examples/parallel_for/tachyon/msvs/uwp/Package.appxmanifest: -------------------------------------------------------------------------------- 1 |  2 | 3 | 8 | 9 | 13 | 14 | 15 | 16 | 17 | tbbTachyon 18 | Administrator 19 | Assets\StoreLogo.png 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 34 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /examples/parallel_for/tachyon/msvs/uwp/pch.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #pragma once 18 | 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include "App.xaml.h" 26 | -------------------------------------------------------------------------------- /examples/parallel_for/tachyon/msvs/uwp/tbbTachyon.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 14 4 | VisualStudioVersion = 14.0.25420.1 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tbbTachyon", "tbbTachyon.vcxproj", "{77FEB0A5-648A-4561-8A9D-61C7818B4490}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|x64 = Debug|x64 11 | Debug|x86 = Debug|x86 12 | Release|x64 = Release|x64 13 | Release|x86 = Release|x86 14 | EndGlobalSection 15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 16 | {77FEB0A5-648A-4561-8A9D-61C7818B4490}.Debug|x64.ActiveCfg = Debug|x64 17 | {77FEB0A5-648A-4561-8A9D-61C7818B4490}.Debug|x64.Build.0 = Debug|x64 18 | {77FEB0A5-648A-4561-8A9D-61C7818B4490}.Debug|x64.Deploy.0 = Debug|x64 19 | {77FEB0A5-648A-4561-8A9D-61C7818B4490}.Debug|x86.ActiveCfg = Debug|Win32 20 | {77FEB0A5-648A-4561-8A9D-61C7818B4490}.Debug|x86.Build.0 = Debug|Win32 21 | {77FEB0A5-648A-4561-8A9D-61C7818B4490}.Debug|x86.Deploy.0 = Debug|Win32 22 | {77FEB0A5-648A-4561-8A9D-61C7818B4490}.Release|x64.ActiveCfg = Release|x64 23 | {77FEB0A5-648A-4561-8A9D-61C7818B4490}.Release|x64.Build.0 = Release|x64 24 | {77FEB0A5-648A-4561-8A9D-61C7818B4490}.Release|x64.Deploy.0 = Release|x64 25 | {77FEB0A5-648A-4561-8A9D-61C7818B4490}.Release|x86.ActiveCfg = Release|Win32 26 | {77FEB0A5-648A-4561-8A9D-61C7818B4490}.Release|x86.Build.0 = Release|Win32 27 | {77FEB0A5-648A-4561-8A9D-61C7818B4490}.Release|x86.Deploy.0 = Release|Win32 28 | EndGlobalSection 29 | GlobalSection(SolutionProperties) = preSolution 30 | HideSolutionNode = FALSE 31 | EndGlobalSection 32 | EndGlobal 33 | -------------------------------------------------------------------------------- /examples/parallel_for/tachyon/msvs/uwp/tbbTachyonRenderer.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #pragma once 18 | 19 | #include 20 | #include "DirectXBase.h" 21 | 22 | ref class tbbTachyonRenderer sealed : public DirectXBase 23 | { 24 | public: 25 | tbbTachyonRenderer(); 26 | virtual void CreateDeviceIndependentResources() override; 27 | virtual void CreateDeviceResources() override; 28 | virtual void CreateWindowSizeDependentResources() override; 29 | virtual void Render() override; 30 | void Update(float timeTotal, float timeDelta); 31 | 32 | void UpdateView(Windows::Foundation::Point deltaViewPosition); 33 | 34 | private: 35 | Microsoft::WRL::ComPtr m_Brush; 36 | Microsoft::WRL::ComPtr m_textFormat; 37 | Microsoft::WRL::ComPtr m_opacityBitmap; 38 | Microsoft::WRL::ComPtr m_textLayout; 39 | DWRITE_TEXT_METRICS m_textMetrics; 40 | bool m_renderNeeded; 41 | ~tbbTachyonRenderer(); 42 | }; 43 | -------------------------------------------------------------------------------- /examples/parallel_reduce/primes/msvs/primes.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 2013 4 | VisualStudioVersion = 12.0.40629.0 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "primes", "primes.vcxproj", "{3AA40693-F93D-4D4B-B32E-068F511A252A}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Win32 = Debug|Win32 11 | Debug|x64 = Debug|x64 12 | Release|Win32 = Release|Win32 13 | Release|x64 = Release|x64 14 | EndGlobalSection 15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 16 | {3AA40693-F93D-4D4B-B32E-068F511A252A}.Debug|Win32.ActiveCfg = Debug|Win32 17 | {3AA40693-F93D-4D4B-B32E-068F511A252A}.Debug|Win32.Build.0 = Debug|Win32 18 | {3AA40693-F93D-4D4B-B32E-068F511A252A}.Debug|x64.ActiveCfg = Debug|x64 19 | {3AA40693-F93D-4D4B-B32E-068F511A252A}.Debug|x64.Build.0 = Debug|x64 20 | {3AA40693-F93D-4D4B-B32E-068F511A252A}.Release|Win32.ActiveCfg = Release|Win32 21 | {3AA40693-F93D-4D4B-B32E-068F511A252A}.Release|Win32.Build.0 = Release|Win32 22 | {3AA40693-F93D-4D4B-B32E-068F511A252A}.Release|x64.ActiveCfg = Release|x64 23 | {3AA40693-F93D-4D4B-B32E-068F511A252A}.Release|x64.Build.0 = Release|x64 24 | EndGlobalSection 25 | GlobalSection(SolutionProperties) = preSolution 26 | HideSolutionNode = FALSE 27 | EndGlobalSection 28 | EndGlobal 29 | -------------------------------------------------------------------------------- /examples/parallel_reduce/primes/primes.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #ifndef PRIMES_H_ 18 | #define PRIMES_H_ 19 | 20 | #if __TBB_MIC_OFFLOAD 21 | #pragma offload_attribute (push,target(mic)) 22 | #endif // __TBB_MIC_OFFLOAD 23 | 24 | #include "../../common/utility/get_default_num_threads.h" 25 | #include 26 | typedef std::size_t NumberType; 27 | 28 | //! Count number of primes between 0 and n 29 | /** This is the serial version. */ 30 | NumberType SerialCountPrimes( NumberType n); 31 | 32 | //! Count number of primes between 0 and n 33 | /** This is the parallel version. */ 34 | NumberType ParallelCountPrimes( NumberType n, int numberOfThreads= utility::get_default_num_threads(), NumberType grainSize = 1000); 35 | 36 | #if __TBB_MIC_OFFLOAD 37 | #pragma offload_attribute (pop) 38 | #endif // __TBB_MIC_OFFLOAD 39 | 40 | #endif /* PRIMES_H_ */ 41 | -------------------------------------------------------------------------------- /examples/pipeline/square/gen_input.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #include 18 | #include 19 | #include 20 | 21 | #if _WIN32 22 | #include 23 | #ifndef F_OK 24 | #define F_OK 0 25 | #endif 26 | #define access _access 27 | #else 28 | #include 29 | #endif 30 | 31 | const long INPUT_SIZE = 1000000; 32 | 33 | //! Generates sample input for square.cpp 34 | void gen_input( const char *fname ) { 35 | long num = INPUT_SIZE; 36 | FILE *fptr = fopen(fname, "w"); 37 | if(!fptr) { 38 | throw std::runtime_error("Could not open file for generating input"); 39 | } 40 | 41 | int a=0; 42 | int b=1; 43 | for( long j=0; j/dev/null)) 23 | CXX=icc 24 | endif # icc 25 | 26 | ifeq ($(shell uname), Linux) 27 | ifeq ($(target), android) 28 | LIBS+= --sysroot=$(SYSROOT) 29 | run_cmd=../../common/android.linux.launcher.sh 30 | else 31 | LIBS+= -lrt 32 | endif 33 | else ifeq ($(shell uname), Darwin) 34 | override CXXFLAGS += -Wl,-rpath,$(TBBROOT)/lib 35 | endif 36 | 37 | # autodetect C++11 support 38 | include ../../common/examples-common.inc 39 | 40 | all: release test 41 | 42 | release: *.cpp 43 | $(CXX) -O2 -DNDEBUG $(CXXFLAGS) -o $(PROG) $^ -ltbbmalloc -ltbb $(LIBS) $(CXX0XFLAGS) 44 | 45 | debug: *.cpp 46 | $(CXX) -O0 -g -DTBB_USE_DEBUG $(CXXFLAGS) -o $(PROG) $^ -ltbbmalloc_debug -ltbb_debug $(LIBS) $(CXX0XFLAGS) 47 | 48 | clean: 49 | $(RM) $(PROG) *.o *.d 50 | 51 | test: 52 | $(run_cmd) ./$(PROG) $(ARGS) 53 | $(run_cmd) ./$(PROG) stdmalloc $(ARGS) 54 | 55 | perf_build: release 56 | 57 | perf_run: 58 | $(run_cmd) ./$(PROG) $(PERF_RUN_ARGS) 59 | -------------------------------------------------------------------------------- /examples/task/tree_sum/SerialSumTree.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #include "common.h" 18 | 19 | Value SerialSumTree( TreeNode* root ) { 20 | Value result = root->value; 21 | if( root->left ) 22 | result += SerialSumTree(root->left); 23 | if( root->right ) 24 | result += SerialSumTree(root->right); 25 | return result; 26 | } 27 | -------------------------------------------------------------------------------- /examples/task/tree_sum/common.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | typedef float Value; 18 | 19 | struct TreeNode { 20 | //! Pointer to left subtree 21 | TreeNode* left; 22 | //! Pointer to right subtree 23 | TreeNode* right; 24 | //! Number of nodes in this subtree, including this node. 25 | long node_count; 26 | //! Value associated with the node. 27 | Value value; 28 | }; 29 | 30 | Value SerialSumTree( TreeNode* root ); 31 | Value SimpleParallelSumTree( TreeNode* root ); 32 | Value OptimizedParallelSumTree( TreeNode* root ); 33 | -------------------------------------------------------------------------------- /examples/task/tree_sum/msvs/tree_sum.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 2013 4 | VisualStudioVersion = 12.0.40629.0 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tree_sum", "tree_sum.vcxproj", "{C931C7A2-074E-4150-9E7A-39A03250411E}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Win32 = Debug|Win32 11 | Debug|x64 = Debug|x64 12 | Release|Win32 = Release|Win32 13 | Release|x64 = Release|x64 14 | EndGlobalSection 15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 16 | {C931C7A2-074E-4150-9E7A-39A03250411E}.Debug|Win32.ActiveCfg = Debug|Win32 17 | {C931C7A2-074E-4150-9E7A-39A03250411E}.Debug|Win32.Build.0 = Debug|Win32 18 | {C931C7A2-074E-4150-9E7A-39A03250411E}.Debug|x64.ActiveCfg = Debug|x64 19 | {C931C7A2-074E-4150-9E7A-39A03250411E}.Debug|x64.Build.0 = Debug|x64 20 | {C931C7A2-074E-4150-9E7A-39A03250411E}.Release|Win32.ActiveCfg = Release|Win32 21 | {C931C7A2-074E-4150-9E7A-39A03250411E}.Release|Win32.Build.0 = Release|Win32 22 | {C931C7A2-074E-4150-9E7A-39A03250411E}.Release|x64.ActiveCfg = Release|x64 23 | {C931C7A2-074E-4150-9E7A-39A03250411E}.Release|x64.Build.0 = Release|x64 24 | EndGlobalSection 25 | GlobalSection(SolutionProperties) = preSolution 26 | HideSolutionNode = FALSE 27 | EndGlobalSection 28 | EndGlobal 29 | -------------------------------------------------------------------------------- /examples/task_arena/fractal/msvs/gui.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wjakob/tbb/9e219e24fe223b299783200f217e9d27790a87b0/examples/task_arena/fractal/msvs/gui.ico -------------------------------------------------------------------------------- /examples/task_arena/fractal/msvs/resource.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #define IDC_MYICON 2 18 | #define IDD_GUI 102 19 | #define IDS_APP_TITLE 103 20 | #define IDI_GUI 107 21 | #define IDI_SMALL 108 22 | #define IDC_GUI 109 23 | #define IDR_MAINFRAME 128 24 | #define IDC_STATIC -1 25 | -------------------------------------------------------------------------------- /examples/task_arena/fractal/msvs/small.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wjakob/tbb/9e219e24fe223b299783200f217e9d27790a87b0/examples/task_arena/fractal/msvs/small.ico -------------------------------------------------------------------------------- /examples/task_group/sudoku/Makefile.windows: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2005-2020 Intel Corporation 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | # Common Makefile that builds and runs example. 16 | 17 | # Just specify your program basename 18 | PROG=sudoku 19 | ARGS= 4 input1 verbose 20 | PERF_RUN_ARGS=auto input1 silent 21 | 22 | # Trying to find if icl.exe is set 23 | CXX1 = $(TBB_CXX)- 24 | CXX2 = $(CXX1:icl.exe-=icl.exe) 25 | CXX = $(CXX2:-=cl.exe) 26 | 27 | # The C++ compiler options 28 | MYCXXFLAGS = /TP /EHsc /W3 /nologo /D _CONSOLE /D _MBCS /D WIN32 /D _CRT_SECURE_NO_DEPRECATE $(CXXFLAGS) 29 | MYLDFLAGS =/INCREMENTAL:NO /NOLOGO /DEBUG /FIXED:NO $(LDFLAGS) 30 | 31 | all: release test 32 | release: 33 | $(CXX) *.cpp /MD /O2 /D NDEBUG $(MYCXXFLAGS) /link tbb.lib $(LIBS) $(MYLDFLAGS) /OUT:$(PROG).exe 34 | debug: 35 | $(CXX) *.cpp /MDd /Od /Zi /D TBB_USE_DEBUG /D _DEBUG $(MYCXXFLAGS) /link tbb_debug.lib $(LIBS) $(MYLDFLAGS) /OUT:$(PROG).exe 36 | clean: 37 | @cmd.exe /C del $(PROG).exe *.obj *.?db *.manifest 38 | test: 39 | $(PROG) $(ARGS) 40 | compiler_check: 41 | @$(CXX) >nul 2>&1 || echo "$(CXX) command not found. Check if CXX=$(CXX) is set properly" 42 | 43 | perf_build: release 44 | 45 | perf_run: 46 | $(PROG) $(PERF_RUN_ARGS) 47 | -------------------------------------------------------------------------------- /examples/task_group/sudoku/input1: -------------------------------------------------------------------------------- 1 | 1 0 0 9 0 0 0 8 0 0 8 0 2 0 0 0 0 0 0 0 5 0 0 0 7 0 0 0 5 2 1 0 0 4 0 0 0 0 0 0 0 5 0 0 7 4 0 0 7 0 0 0 3 0 0 3 0 0 0 2 0 0 5 0 0 0 0 0 0 1 0 0 5 0 0 0 1 0 0 0 0 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 1 0 0 9 0 0 0 8 0 10 | 0 8 0 2 0 0 0 0 0 11 | 0 0 5 0 0 0 7 0 0 12 | 13 | 0 5 2 1 0 0 4 0 0 14 | 0 0 0 0 0 5 0 0 7 15 | 4 0 0 7 0 0 0 3 0 16 | 17 | 0 3 0 0 0 2 0 0 5 18 | 0 0 0 0 0 0 1 0 0 19 | 5 0 0 0 1 0 0 0 0 20 | -------------------------------------------------------------------------------- /examples/task_group/sudoku/input2: -------------------------------------------------------------------------------- 1 | 2 0 1 0 0 0 0 8 0 0 8 0 2 1 9 6 0 0 0 0 5 0 0 0 7 0 0 0 5 2 1 0 0 4 0 0 0 0 0 0 0 5 0 0 7 4 0 0 7 0 0 0 3 0 0 3 0 0 0 2 0 0 5 0 0 0 0 3 0 1 0 0 5 0 0 0 8 0 0 0 6 2 | 3 | 4 | 5 | 6 | 7 | 8 | 2 0 1 0 0 0 0 8 0 9 | 0 8 0 2 1 9 6 0 0 10 | 0 0 5 0 0 0 7 0 0 11 | 12 | 0 5 2 1 0 0 4 0 0 13 | 0 0 0 0 0 5 0 0 7 14 | 4 0 0 7 0 0 0 3 0 15 | 16 | 0 3 0 0 0 2 0 0 5 17 | 0 0 0 0 3 0 1 0 0 18 | 5 0 0 0 8 0 0 0 6 19 | -------------------------------------------------------------------------------- /examples/task_group/sudoku/input3: -------------------------------------------------------------------------------- 1 | 1 0 0 9 0 0 0 8 0 0 0 0 2 0 0 0 0 0 0 0 5 0 0 0 7 0 0 0 5 2 6 0 0 4 0 0 0 0 0 0 0 5 0 0 7 4 0 0 7 0 0 0 3 0 0 3 0 0 0 2 0 0 5 0 0 0 0 0 0 1 0 0 5 0 0 0 1 0 0 0 0 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 1 0 0 9 0 0 0 8 0 10 | 0 0 0 2 0 0 0 0 0 11 | 0 0 5 0 0 0 7 0 0 12 | 13 | 0 5 2 6 0 0 4 0 0 14 | 0 0 0 0 0 5 0 0 7 15 | 4 0 0 7 0 0 0 3 0 16 | 17 | 0 3 0 0 0 2 0 0 5 18 | 0 0 0 0 0 0 1 0 0 19 | 5 0 0 0 1 0 0 0 0 20 | -------------------------------------------------------------------------------- /examples/task_group/sudoku/input4: -------------------------------------------------------------------------------- 1 | 1 0 0 9 0 0 0 8 0 0 0 0 2 0 0 0 0 0 0 0 5 0 0 0 7 0 0 0 0 2 6 0 0 0 0 0 0 0 0 0 0 5 0 0 7 4 0 0 0 0 0 0 3 0 0 3 0 0 0 2 0 0 5 0 0 0 0 0 0 1 0 0 5 0 0 0 1 0 0 0 0 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 1 0 0 9 0 0 0 8 0 10 | 0 0 0 2 0 0 0 0 0 11 | 0 0 5 0 0 0 7 0 0 12 | 13 | 0 0 2 6 0 0 0 0 0 14 | 0 0 0 0 0 5 0 0 7 15 | 4 0 0 0 0 0 0 3 0 16 | 17 | 0 3 0 0 0 2 0 0 5 18 | 0 0 0 0 0 0 1 0 0 19 | 5 0 0 0 1 0 0 0 0 20 | -------------------------------------------------------------------------------- /examples/task_group/sudoku/msvs/sudoku.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 2013 4 | VisualStudioVersion = 12.0.40629.0 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sudoku", "sudoku.vcxproj", "{C931C7A2-074E-4150-9E7A-39A03250411E}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Win32 = Debug|Win32 11 | Debug|x64 = Debug|x64 12 | Release|Win32 = Release|Win32 13 | Release|x64 = Release|x64 14 | EndGlobalSection 15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 16 | {C931C7A2-074E-4150-9E7A-39A03250411E}.Debug|Win32.ActiveCfg = Debug|Win32 17 | {C931C7A2-074E-4150-9E7A-39A03250411E}.Debug|Win32.Build.0 = Debug|Win32 18 | {C931C7A2-074E-4150-9E7A-39A03250411E}.Debug|x64.ActiveCfg = Debug|x64 19 | {C931C7A2-074E-4150-9E7A-39A03250411E}.Debug|x64.Build.0 = Debug|x64 20 | {C931C7A2-074E-4150-9E7A-39A03250411E}.Release|Win32.ActiveCfg = Release|Win32 21 | {C931C7A2-074E-4150-9E7A-39A03250411E}.Release|Win32.Build.0 = Release|Win32 22 | {C931C7A2-074E-4150-9E7A-39A03250411E}.Release|x64.ActiveCfg = Release|x64 23 | {C931C7A2-074E-4150-9E7A-39A03250411E}.Release|x64.Build.0 = Release|x64 24 | EndGlobalSection 25 | GlobalSection(SolutionProperties) = preSolution 26 | HideSolutionNode = FALSE 27 | EndGlobalSection 28 | EndGlobal 29 | -------------------------------------------------------------------------------- /examples/test_all/fibonacci/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2019-2020 Intel Corporation 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | cmake_minimum_required(VERSION 3.0.0 FATAL_ERROR) 16 | 17 | project(fibonacci CXX) 18 | 19 | if (NOT CMAKE_CXX_STANDARD) 20 | set(CMAKE_CXX_STANDARD 11) 21 | set(CXX_STANDARD_REQUIRED ON) 22 | endif() 23 | 24 | add_executable(fibonacci Fibonacci.cpp) 25 | 26 | # find_package will search for available TBBConfig using variables CMAKE_PREFIX_PATH and TBB_DIR. 27 | find_package(TBB REQUIRED tbb) 28 | 29 | target_link_libraries(fibonacci 30 | ${TBB_IMPORTED_TARGETS} # Link TBB imported targets to the executable; "TBB::tbb" can be used instead of "${TBB_IMPORTED_TARGETS}". 31 | $<$:rt>) # Link "rt" library on Linux 32 | -------------------------------------------------------------------------------- /examples/test_all/fibonacci/Makefile: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2005-2020 Intel Corporation 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | # GNU Makefile that builds and runs example. 16 | run_cmd= 17 | PROG=fibonacci 18 | ARGS= 19 | 20 | # The C++ compiler 21 | ifneq (,$(shell which icc 2>/dev/null)) 22 | CXX=icc 23 | endif # icc 24 | 25 | ifeq ($(shell uname), Linux) 26 | ifeq ($(target), android) 27 | LIBS+= --sysroot=$(SYSROOT) 28 | run_cmd=../../common/android.linux.launcher.sh 29 | else 30 | LIBS+= -lrt 31 | endif 32 | else ifeq ($(shell uname), Darwin) 33 | override CXXFLAGS += -Wl,-rpath,$(TBBROOT)/lib 34 | endif 35 | 36 | # autodetect C++11 support 37 | include ../../common/examples-common.inc 38 | 39 | all: release test 40 | 41 | release: *.cpp 42 | $(CXX) -O2 -DNDEBUG $(CXXFLAGS) -o $(PROG) $^ -ltbb $(LIBS) $(CXX0XFLAGS) 43 | 44 | debug: *.cpp 45 | $(CXX) -O0 -g -DTBB_USE_DEBUG $(CXXFLAGS) -o $(PROG) $^ -ltbb_debug $(LIBS) $(CXX0XFLAGS) 46 | 47 | clean: 48 | $(RM) $(PROG) *.o *.d 49 | 50 | test: 51 | $(run_cmd) ./$(PROG) $(ARGS) 52 | -------------------------------------------------------------------------------- /examples/test_all/fibonacci/Makefile.windows: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2005-2020 Intel Corporation 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | # Common Makefile that builds and runs example. 16 | 17 | # Just specify your program basename 18 | PROG=Fibonacci 19 | ARGS= 20 | 21 | # Trying to find if icl.exe is set 22 | CXX1 = $(TBB_CXX)- 23 | CXX2 = $(CXX1:icl.exe-=icl.exe) 24 | CXX = $(CXX2:-=cl.exe) 25 | 26 | # The C++ compiler options 27 | MYCXXFLAGS = /TP /EHsc /W3 /nologo /D _CONSOLE /D _MBCS /D WIN32 /D _WIN32_WINNT=0x0501 $(CXXFLAGS) 28 | MYLDFLAGS =/INCREMENTAL:NO /NOLOGO /DEBUG /FIXED:NO $(LDFLAGS) 29 | 30 | all: release test 31 | release: compiler_check 32 | $(CXX) *.cpp /MD /O2 /D NDEBUG $(MYCXXFLAGS) /link tbb.lib $(LIBS) $(MYLDFLAGS) /OUT:$(PROG).exe 33 | debug: compiler_check 34 | $(CXX) *.cpp /MDd /Od /Zi /D TBB_USE_DEBUG /D _DEBUG $(MYCXXFLAGS) /link tbb_debug.lib $(LIBS) $(MYLDFLAGS) /OUT:$(PROG).exe 35 | clean: 36 | @cmd.exe /C del $(PROG).exe *.obj *.?db *.manifest 37 | test: 38 | $(PROG) $(ARGS) 39 | compiler_check: 40 | @echo compiler_test>compiler_test && @$(CXX) /E compiler_test >nul 2>&1 || echo "$(CXX) command not found. Check if CXX=$(CXX) is set properly" 41 | @cmd.exe /C del compiler_test 42 | -------------------------------------------------------------------------------- /examples/test_all/fibonacci/msvs/fibonacci.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 2013 4 | VisualStudioVersion = 12.0.40629.0 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fibonacci", "fibonacci.vcxproj", "{3AA40693-F93D-4D4B-B32E-068F511A252E}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Win32 = Debug|Win32 11 | Debug|x64 = Debug|x64 12 | Release|Win32 = Release|Win32 13 | Release|x64 = Release|x64 14 | EndGlobalSection 15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 16 | {3AA40693-F93D-4D4B-B32E-068F511A252E}.Debug|Win32.ActiveCfg = Debug|Win32 17 | {3AA40693-F93D-4D4B-B32E-068F511A252E}.Debug|Win32.Build.0 = Debug|Win32 18 | {3AA40693-F93D-4D4B-B32E-068F511A252E}.Debug|x64.ActiveCfg = Debug|x64 19 | {3AA40693-F93D-4D4B-B32E-068F511A252E}.Debug|x64.Build.0 = Debug|x64 20 | {3AA40693-F93D-4D4B-B32E-068F511A252E}.Release|Win32.ActiveCfg = Release|Win32 21 | {3AA40693-F93D-4D4B-B32E-068F511A252E}.Release|Win32.Build.0 = Release|Win32 22 | {3AA40693-F93D-4D4B-B32E-068F511A252E}.Release|x64.ActiveCfg = Release|x64 23 | {3AA40693-F93D-4D4B-B32E-068F511A252E}.Release|x64.Build.0 = Release|x64 24 | EndGlobalSection 25 | GlobalSection(SolutionProperties) = preSolution 26 | HideSolutionNode = FALSE 27 | EndGlobalSection 28 | EndGlobal 29 | -------------------------------------------------------------------------------- /include/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |

Overview

5 | Include files for Intel® Threading Building Blocks (Intel® TBB). 6 | 7 |

Directories

8 |
9 |
tbb 10 |
Include files for Intel TBB classes and functions. 11 |
serial/tbb 12 |
Include files for a sequential implementation of the parallel_for algorithm. 13 |
14 | 15 |
16 | Up to parent directory 17 |

18 | Copyright © 2005-2020 Intel Corporation. All Rights Reserved. 19 |

20 | Intel is a registered trademark or trademark of Intel Corporation 21 | or its subsidiaries in the United States and other countries. 22 |

23 | * Other names and brands may be claimed as the property of others. 24 | 25 | 26 | -------------------------------------------------------------------------------- /include/serial/tbb/tbb_annotate.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #ifndef __TBB_annotate_H 18 | #define __TBB_annotate_H 19 | 20 | // Macros used by the Intel(R) Parallel Advisor. 21 | #ifdef __TBB_NORMAL_EXECUTION 22 | #define ANNOTATE_SITE_BEGIN( site ) 23 | #define ANNOTATE_SITE_END( site ) 24 | #define ANNOTATE_TASK_BEGIN( task ) 25 | #define ANNOTATE_TASK_END( task ) 26 | #define ANNOTATE_LOCK_ACQUIRE( lock ) 27 | #define ANNOTATE_LOCK_RELEASE( lock ) 28 | #else 29 | #include 30 | #endif 31 | 32 | #endif /* __TBB_annotate_H */ 33 | -------------------------------------------------------------------------------- /include/tbb/flow_graph_abstractions.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #ifndef __TBB_flow_graph_abstractions_H 18 | #define __TBB_flow_graph_abstractions_H 19 | 20 | namespace tbb { 21 | namespace flow { 22 | namespace interface11 { 23 | 24 | //! Pure virtual template classes that define interfaces for async communication 25 | class graph_proxy { 26 | public: 27 | //! Inform a graph that messages may come from outside, to prevent premature graph completion 28 | virtual void reserve_wait() = 0; 29 | 30 | //! Inform a graph that a previous call to reserve_wait is no longer in effect 31 | virtual void release_wait() = 0; 32 | 33 | virtual ~graph_proxy() {} 34 | }; 35 | 36 | template 37 | class receiver_gateway : public graph_proxy { 38 | public: 39 | //! Type of inputing data into FG. 40 | typedef Input input_type; 41 | 42 | //! Submit signal from an asynchronous activity to FG. 43 | virtual bool try_put(const input_type&) = 0; 44 | }; 45 | 46 | } //interfaceX 47 | 48 | using interface11::graph_proxy; 49 | using interface11::receiver_gateway; 50 | 51 | } //flow 52 | } //tbb 53 | #endif 54 | -------------------------------------------------------------------------------- /include/tbb/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |

Overview

5 | Include files for Intel® Threading Building Blocks classes and functions. 6 | 7 |
Click here to see all files in the directory. 8 | 9 |

Directories

10 |
11 |
compat 12 |
Include files for source level compatibility with other frameworks. 13 |
internal 14 |
Include files with implementation details; not for direct use. 15 |
machine 16 |
Include files for low-level architecture specific functionality; not for direct use. 17 |
18 | 19 |
20 | Up to parent directory 21 |

22 | Copyright © 2005-2020 Intel Corporation. All Rights Reserved. 23 |

24 | Intel is a registered trademark or trademark of Intel Corporation 25 | or its subsidiaries in the United States and other countries. 26 |

27 | * Other names and brands may be claimed as the property of others. 28 | 29 | 30 | -------------------------------------------------------------------------------- /include/tbb/info.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2019-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #ifndef __TBB_info_H 18 | #define __TBB_info_H 19 | 20 | #include "tbb_config.h" 21 | 22 | #if __TBB_NUMA_SUPPORT 23 | 24 | #include 25 | 26 | namespace tbb { 27 | namespace internal { 28 | namespace numa_topology { 29 | unsigned nodes_count(); 30 | void fill(int* indexes_array); 31 | int default_concurrency(int node_id); 32 | } //namespace numa_topology 33 | } // namespace internal 34 | 35 | typedef int numa_node_id; 36 | 37 | namespace info { 38 | inline std::vector numa_nodes() { 39 | std::vector nodes_indexes(tbb::internal::numa_topology::nodes_count()); 40 | internal::numa_topology::fill(&nodes_indexes.front()); 41 | return nodes_indexes; 42 | } 43 | 44 | inline int default_concurrency(numa_node_id id = -1) { 45 | return internal::numa_topology::default_concurrency(id); 46 | } 47 | } // namespace info 48 | } // namespace tbb 49 | 50 | #endif /*__TBB_NUMA_SUPPORT*/ 51 | 52 | #endif /*__TBB_info_H*/ 53 | -------------------------------------------------------------------------------- /include/tbb/internal/_warning_suppress_disable_notice.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #if __TBB_SUPPRESS_INTERNAL_DEPRECATED_MESSAGES 18 | 19 | #if __INTEL_COMPILER || _MSC_VER 20 | #pragma warning( pop ) 21 | #elif __GNUC__ 22 | #pragma GCC diagnostic pop 23 | #elif __clang__ 24 | #pragma clang diagnostic pop 25 | #endif 26 | 27 | #endif // __TBB_SUPPRESS_INTERNAL_DEPRECATED_MESSAGES 28 | -------------------------------------------------------------------------------- /include/tbb/internal/_warning_suppress_enable_notice.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #include "../tbb_config.h" 18 | 19 | #if __TBB_SUPPRESS_INTERNAL_DEPRECATED_MESSAGES 20 | 21 | #if _MSC_VER || __INTEL_COMPILER 22 | #pragma warning( push ) 23 | #pragma warning( disable: 4996 ) 24 | #elif __GNUC__ 25 | #pragma GCC diagnostic push 26 | #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 27 | #elif __clang__ 28 | #pragma clang diagnostic push 29 | #pragma clang diagnostic ignored "-Wdeprecated-declarations" 30 | #endif 31 | 32 | #endif // __TBB_SUPPRESS_INTERNAL_DEPRECATED_MESSAGES 33 | -------------------------------------------------------------------------------- /include/tbb/null_mutex.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #ifndef __TBB_null_mutex_H 18 | #define __TBB_null_mutex_H 19 | 20 | #include "tbb_stddef.h" 21 | 22 | namespace tbb { 23 | 24 | //! A mutex which does nothing 25 | /** A null_mutex does no operation and simulates success. 26 | @ingroup synchronization */ 27 | class null_mutex : internal::mutex_copy_deprecated_and_disabled { 28 | public: 29 | //! Represents acquisition of a mutex. 30 | class scoped_lock : internal::no_copy { 31 | public: 32 | scoped_lock() {} 33 | scoped_lock( null_mutex& ) {} 34 | ~scoped_lock() {} 35 | void acquire( null_mutex& ) {} 36 | bool try_acquire( null_mutex& ) { return true; } 37 | void release() {} 38 | }; 39 | 40 | null_mutex() {} 41 | 42 | // Mutex traits 43 | static const bool is_rw_mutex = false; 44 | static const bool is_recursive_mutex = true; 45 | static const bool is_fair_mutex = true; 46 | }; 47 | 48 | } 49 | 50 | #endif /* __TBB_null_mutex_H */ 51 | -------------------------------------------------------------------------------- /include/tbb/tbb_disable_exceptions.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | //! To disable use of exceptions, include this header before any other header file from the library. 18 | 19 | //! The macro that prevents use of exceptions in the library files 20 | #undef TBB_USE_EXCEPTIONS 21 | #define TBB_USE_EXCEPTIONS 0 22 | 23 | //! Prevent compilers from issuing exception related warnings. 24 | /** Note that the warnings are suppressed for all the code after this header is included. */ 25 | #if _MSC_VER 26 | #if __INTEL_COMPILER 27 | #pragma warning (disable: 583) 28 | #else 29 | #pragma warning (disable: 4530 4577) 30 | #endif 31 | #endif 32 | -------------------------------------------------------------------------------- /python/Makefile: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2016-2020 Intel Corporation 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | tbb_root?=.. 16 | BUILDING_PHASE:=0 17 | include $(tbb_root)/build/common.inc 18 | .PHONY: all release test install test-install 19 | 20 | export TBBROOT=$(abspath $(tbb_root)) 21 | SRC=$(tbb_root)/python/*.py $(tbb_root)/python/tbb/* 22 | PY_SETUP=python $(tbb_root)/python/setup.py 23 | 24 | all: install test 25 | 26 | clean: 27 | $(PY_SETUP) clean -b$(work_dir)_release 28 | 29 | release: CC=$(compiler) 30 | release: $(SRC) rml 31 | $(PY_SETUP) build -b$(work_dir)_release -f check 32 | 33 | install: CC=$(compiler) 34 | install: $(SRC) rml 35 | $(PY_SETUP) build -b$(work_dir)_release build_ext -f -I$(tbb_root)/include -L$(work_dir)_release install -f 36 | 37 | test: 38 | python -m tbb test 39 | 40 | rml: 41 | ifeq (linux,$(tbb_os)) 42 | $(MAKE) -C "$(work_dir)_release" -rf $(tbb_root)/python/rml/Makefile cfg=release rml 43 | rml_%: 44 | $(MAKE) -C "$(work_dir)_release" -rf $(tbb_root)/python/rml/Makefile cfg=release $(subst rml_,,$@) 45 | endif 46 | -------------------------------------------------------------------------------- /python/TBB.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # 3 | # Copyright (c) 2016-2020 Intel Corporation 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | 18 | from tbb import * 19 | from tbb import __all__, __doc__ 20 | 21 | if __name__ == "__main__": 22 | from tbb import _main 23 | import sys 24 | sys.exit(_main()) 25 | -------------------------------------------------------------------------------- /python/rml/ipc_utils.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2017-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #ifndef __IPC_UTILS_H 18 | #define __IPC_UTILS_H 19 | 20 | namespace tbb { 21 | namespace internal { 22 | namespace rml { 23 | 24 | char* get_shared_name(const char* prefix); 25 | int get_num_threads(const char* env_var); 26 | bool get_enable_flag(const char* env_var); 27 | 28 | }}} //tbb::internal::rml 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /python/tbb/__main__.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # 3 | # Copyright (c) 2016-2020 Intel Corporation 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | 18 | from . import _main 19 | from sys import exit 20 | exit(_main()) 21 | -------------------------------------------------------------------------------- /src/old/task_v2.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | /* This compilation unit provides definition of task::destroy( task& ) 18 | that is binary compatible with TBB 2.x. In TBB 3.0, the method became 19 | static, and its name decoration changed, though the definition remained. 20 | 21 | The macro switch should be set prior to including task.h 22 | or any TBB file that might bring task.h up. 23 | */ 24 | #define __TBB_DEPRECATED_TASK_INTERFACE 1 25 | #include "tbb/task.h" 26 | 27 | namespace tbb { 28 | 29 | void task::destroy( task& victim ) { 30 | // Forward to static version 31 | task_base::destroy( victim ); 32 | } 33 | 34 | } // namespace tbb 35 | -------------------------------------------------------------------------------- /src/perf/harness_perf.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #ifndef __TBB_HARNESS_PERF 18 | #define __TBB_HARNESS_PERF 19 | 20 | #include 21 | #include 22 | 23 | namespace harness_perf { 24 | 25 | template 26 | typename InputIterator::value_type median(InputIterator first, InputIterator last) { 27 | std::sort(first, last); 28 | typename InputIterator::difference_type distance = std::distance(first, last); 29 | std::advance(first, distance / 2 - 1); 30 | if (distance % 2 == 0) 31 | return typename InputIterator::value_type((*first + *(++first)) / 2); 32 | else 33 | return typename InputIterator::value_type(*first); 34 | } 35 | 36 | } // namespace harness_perf 37 | 38 | #endif // !__TBB_HARNESS_PERF 39 | 40 | -------------------------------------------------------------------------------- /src/perf/run_statistics.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # Copyright (c) 2005-2020 Intel Corporation 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | export LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH 18 | #setting output format .csv, 'pivot' - is pivot table mode, ++ means append 19 | export STAT_FORMAT=pivot-csv++ 20 | #check existing files because of append mode 21 | ls *.csv 22 | rm -i *.csv 23 | #setting a delimiter in txt or csv file 24 | #export STAT_DELIMITER=, 25 | export STAT_RUNINFO1=Host=`hostname -s` 26 | #append a suffix after the filename 27 | #export STAT_SUFFIX=$STAT_RUNINFO1 28 | for ((i=1;i<=${repeat:=100};++i)); do echo $i of $repeat: && STAT_RUNINFO2=Run=$i $* || break; done 29 | -------------------------------------------------------------------------------- /src/rml/client/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |

Overview

4 | 5 | This directory has source code that must be statically linked into an RML client. 6 | 7 |

Files

8 | 9 |
10 |
rml_factory.h 11 |
Text shared by rml_omp.cpp and rml_tbb.cpp. 12 | This is not an ordinary include file, so it does not have an #ifndef guard.
13 |
14 | 15 |

Specific to client=OpenMP

16 |
17 |
rml_omp.cpp 18 |
Source file for OpenMP client.
19 |
omp_dynamic_link.h
20 |
omp_dynamic_link.cpp 21 |
Source files for dynamic linking support. 22 | The code is the code from the TBB source directory, but adjusted so that it 23 | appears in namespace __kmp instead of namespace tbb::internal.
24 |
25 |

Specific to client=TBB

26 |
27 |
rml_tbb.cpp 28 |
Source file for TBB client. It uses the dynamic linking support from the TBB source directory.
29 |
30 | 31 |
32 | Up to parent directory 33 |

34 | Copyright © 2005-2020 Intel Corporation. All Rights Reserved. 35 |

36 | Intel is a registered trademark or trademark of Intel Corporation 37 | or its subsidiaries in the United States and other countries. 38 |

39 | * Other names and brands may be claimed as the property of others. 40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /src/rml/client/library_assert.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #ifndef LIBRARY_ASSERT_H 18 | #define LIBRARY_ASSERT_H 19 | 20 | #ifndef LIBRARY_ASSERT 21 | #ifdef KMP_ASSERT2 22 | #define LIBRARY_ASSERT(x,y) KMP_ASSERT2((x),(y)) 23 | #else 24 | #include 25 | #define LIBRARY_ASSERT(x,y) assert(x) 26 | #define __TBB_DYNAMIC_LOAD_ENABLED 1 27 | #endif 28 | #endif /* LIBRARY_ASSERT */ 29 | 30 | #endif /* LIBRARY_ASSERT_H */ 31 | -------------------------------------------------------------------------------- /src/rml/client/omp_dynamic_link.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #include "omp_dynamic_link.h" 18 | #include "library_assert.h" 19 | #include "tbb/dynamic_link.cpp" // Refers to src/tbb, not include/tbb 20 | 21 | -------------------------------------------------------------------------------- /src/rml/client/omp_dynamic_link.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #ifndef __KMP_omp_dynamic_link_H 18 | #define __KMP_omp_dynamic_link_H 19 | 20 | #define OPEN_INTERNAL_NAMESPACE namespace __kmp { 21 | #define CLOSE_INTERNAL_NAMESPACE } 22 | 23 | #include "library_assert.h" 24 | #include "tbb/dynamic_link.h" // Refers to src/tbb, not include/tbb 25 | 26 | #endif /* __KMP_omp_dynamic_link_H */ 27 | -------------------------------------------------------------------------------- /src/rml/client/rml_omp.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #include "rml_omp.h" 18 | #include "omp_dynamic_link.h" 19 | #include 20 | 21 | namespace __kmp { 22 | namespace rml { 23 | 24 | #define MAKE_SERVER(x) DLD(__KMP_make_rml_server,x) 25 | #define GET_INFO(x) DLD(__KMP_call_with_my_server_info,x) 26 | #define SERVER omp_server 27 | #define CLIENT omp_client 28 | #define FACTORY omp_factory 29 | 30 | #if __TBB_WEAK_SYMBOLS_PRESENT 31 | #pragma weak __KMP_make_rml_server 32 | #pragma weak __KMP_call_with_my_server_info 33 | extern "C" { 34 | omp_factory::status_type __KMP_make_rml_server( omp_factory& f, omp_server*& server, omp_client& client ); 35 | void __KMP_call_with_my_server_info( ::rml::server_info_callback_t cb, void* arg ); 36 | } 37 | #endif /* __TBB_WEAK_SYMBOLS_PRESENT */ 38 | 39 | #include "rml_factory.h" 40 | 41 | } // rml 42 | } // __kmp 43 | -------------------------------------------------------------------------------- /src/rml/client/rml_tbb.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #include "../include/rml_tbb.h" 18 | #include "tbb/dynamic_link.h" 19 | #include 20 | 21 | namespace tbb { 22 | namespace internal { 23 | namespace rml { 24 | 25 | #define MAKE_SERVER(x) DLD(__TBB_make_rml_server,x) 26 | #define GET_INFO(x) DLD(__TBB_call_with_my_server_info,x) 27 | #define SERVER tbb_server 28 | #define CLIENT tbb_client 29 | #define FACTORY tbb_factory 30 | 31 | #if __TBB_WEAK_SYMBOLS_PRESENT 32 | #pragma weak __TBB_make_rml_server 33 | #pragma weak __TBB_call_with_my_server_info 34 | extern "C" { 35 | ::rml::factory::status_type __TBB_make_rml_server( tbb::internal::rml::tbb_factory& f, tbb::internal::rml::tbb_server*& server, tbb::internal::rml::tbb_client& client ); 36 | void __TBB_call_with_my_server_info( ::rml::server_info_callback_t cb, void* arg ); 37 | } 38 | #endif /* __TBB_WEAK_SYMBOLS_PRESENT */ 39 | 40 | #include "rml_factory.h" 41 | 42 | } // rml 43 | } // internal 44 | } // tbb 45 | -------------------------------------------------------------------------------- /src/rml/include/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |

Overview

4 | 5 | This directory has the include files for the Resource Management Layer (RML). 6 | 7 |

Files

8 | 9 |
10 |

rml_base.h 11 |

Interfaces shared by TBB and OpenMP.

12 |

rml_omp.h 13 |

Interface exclusive to OpenMP.

14 |

rml_tbb.h 15 |

Interface exclusive to TBB.

16 |
17 | 18 |
19 | Up to parent directory 20 |

21 | Copyright © 2005-2020 Intel Corporation. All Rights Reserved. 22 |

23 | Intel is a registered trademark or trademark of Intel Corporation 24 | or its subsidiaries in the United States and other countries. 25 |

26 | * Other names and brands may be claimed as the property of others. 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /src/rml/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |

Overview

4 | 5 | The subdirectories pertain to the Resource Management Layer (RML). 6 | 7 |

Directories

8 | 9 |
10 |

include/ 11 |

Include files used by clients of RML.

12 |

client/ 13 |

Source files for code that must be statically linked with a client.

14 |

server/ 15 |

Source files for the RML server.

16 |

test/ 17 |

Unit tests for RML server and its components.

18 |
19 | 20 |
21 | Up to parent directory 22 |

23 | Copyright © 2005-2020 Intel Corporation. All Rights Reserved. 24 |

25 | Intel is a registered trademark or trademark of Intel Corporation 26 | or its subsidiaries in the United States and other countries. 27 |

28 | * Other names and brands may be claimed as the property of others. 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /src/rml/server/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |

Overview

4 | 5 | This directory has source code internal to the server. 6 | 7 |
8 | Up to parent directory 9 |

10 | Copyright © 2005-2020 Intel Corporation. All Rights Reserved. 11 |

12 | Intel is a registered trademark or trademark of Intel Corporation 13 | or its subsidiaries in the United States and other countries. 14 |

15 | * Other names and brands may be claimed as the property of others. 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/rml/server/lin-rml-export.def: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | { 18 | global: 19 | __RML_open_factory; 20 | __RML_close_factory; 21 | __TBB_make_rml_server; 22 | __KMP_make_rml_server; 23 | __TBB_call_with_my_server_info; 24 | __KMP_call_with_my_server_info; 25 | local:*; 26 | }; 27 | -------------------------------------------------------------------------------- /src/rml/server/win32-rml-export.def: -------------------------------------------------------------------------------- 1 | ; Copyright (c) 2005-2020 Intel Corporation 2 | ; 3 | ; Licensed under the Apache License, Version 2.0 (the "License"); 4 | ; you may not use this file except in compliance with the License. 5 | ; You may obtain a copy of the License at 6 | ; 7 | ; http://www.apache.org/licenses/LICENSE-2.0 8 | ; 9 | ; Unless required by applicable law or agreed to in writing, software 10 | ; distributed under the License is distributed on an "AS IS" BASIS, 11 | ; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | ; See the License for the specific language governing permissions and 13 | ; limitations under the License. 14 | 15 | EXPORTS 16 | 17 | __RML_open_factory 18 | __RML_close_factory 19 | __TBB_make_rml_server 20 | __KMP_make_rml_server 21 | __TBB_call_with_my_server_info 22 | __KMP_call_with_my_server_info 23 | 24 | -------------------------------------------------------------------------------- /src/rml/server/win64-rml-export.def: -------------------------------------------------------------------------------- 1 | ; Copyright (c) 2005-2020 Intel Corporation 2 | ; 3 | ; Licensed under the Apache License, Version 2.0 (the "License"); 4 | ; you may not use this file except in compliance with the License. 5 | ; You may obtain a copy of the License at 6 | ; 7 | ; http://www.apache.org/licenses/LICENSE-2.0 8 | ; 9 | ; Unless required by applicable law or agreed to in writing, software 10 | ; distributed under the License is distributed on an "AS IS" BASIS, 11 | ; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | ; See the License for the specific language governing permissions and 13 | ; limitations under the License. 14 | 15 | EXPORTS 16 | 17 | __RML_open_factory 18 | __RML_close_factory 19 | __TBB_make_rml_server 20 | __KMP_make_rml_server 21 | __TBB_call_with_my_server_info 22 | __KMP_call_with_my_server_info 23 | 24 | -------------------------------------------------------------------------------- /src/rml/test/test_rml_omp_c_linkage.c: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | void Cplusplus(); 18 | 19 | int main() { 20 | Cplusplus(); 21 | return 0; 22 | } 23 | -------------------------------------------------------------------------------- /src/tbb/critical_section.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #include "tbb/critical_section.h" 18 | #include "itt_notify.h" 19 | 20 | namespace tbb { 21 | namespace internal { 22 | 23 | void critical_section_v4::internal_construct() { 24 | ITT_SYNC_CREATE(&my_impl, _T("ppl::critical_section"), _T("")); 25 | } 26 | } // namespace internal 27 | } // namespace tbb 28 | -------------------------------------------------------------------------------- /src/tbb/ia32-masm/lock_byte.asm: -------------------------------------------------------------------------------- 1 | ; Copyright (c) 2005-2020 Intel Corporation 2 | ; 3 | ; Licensed under the Apache License, Version 2.0 (the "License"); 4 | ; you may not use this file except in compliance with the License. 5 | ; You may obtain a copy of the License at 6 | ; 7 | ; http://www.apache.org/licenses/LICENSE-2.0 8 | ; 9 | ; Unless required by applicable law or agreed to in writing, software 10 | ; distributed under the License is distributed on an "AS IS" BASIS, 11 | ; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | ; See the License for the specific language governing permissions and 13 | ; limitations under the License. 14 | 15 | ; DO NOT EDIT - AUTOMATICALLY GENERATED FROM .s FILE 16 | .686 17 | .model flat,c 18 | .code 19 | ALIGN 4 20 | PUBLIC c __TBB_machine_trylockbyte 21 | __TBB_machine_trylockbyte: 22 | mov edx,4[esp] 23 | mov al,[edx] 24 | mov cl,1 25 | test al,1 26 | jnz __TBB_machine_trylockbyte_contended 27 | lock cmpxchg [edx],cl 28 | jne __TBB_machine_trylockbyte_contended 29 | mov eax,1 30 | ret 31 | __TBB_machine_trylockbyte_contended: 32 | xor eax,eax 33 | ret 34 | end 35 | -------------------------------------------------------------------------------- /src/tbb/ia64-gas/lock_byte.s: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2005-2020 Intel Corporation 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | // Support for class TinyLock 16 | .section .text 17 | .align 16 18 | // unsigned int __TBB_machine_trylockbyte( byte& flag ); 19 | // r32 = address of flag 20 | .proc __TBB_machine_trylockbyte# 21 | .global __TBB_machine_trylockbyte# 22 | ADDRESS_OF_FLAG=r32 23 | RETCODE=r8 24 | FLAG=r9 25 | BUSY=r10 26 | SCRATCH=r11 27 | __TBB_machine_trylockbyte: 28 | ld1.acq FLAG=[ADDRESS_OF_FLAG] 29 | mov BUSY=1 30 | mov RETCODE=0 31 | ;; 32 | cmp.ne p6,p0=0,FLAG 33 | mov ar.ccv=r0 34 | (p6) br.ret.sptk.many b0 35 | ;; 36 | cmpxchg1.acq SCRATCH=[ADDRESS_OF_FLAG],BUSY,ar.ccv // Try to acquire lock 37 | ;; 38 | cmp.eq p6,p0=0,SCRATCH 39 | ;; 40 | (p6) mov RETCODE=1 41 | br.ret.sptk.many b0 42 | .endp __TBB_machine_trylockbyte# 43 | -------------------------------------------------------------------------------- /src/tbb/ia64-gas/log2.s: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2005-2020 Intel Corporation 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | .section .text 16 | .align 16 17 | // unsigned long __TBB_machine_lg( unsigned long x ); 18 | // r32 = x 19 | .proc __TBB_machine_lg# 20 | .global __TBB_machine_lg# 21 | __TBB_machine_lg: 22 | shr r16=r32,1 // .x 23 | ;; 24 | shr r17=r32,2 // ..x 25 | or r32=r32,r16 // xx 26 | ;; 27 | shr r16=r32,3 // ...xx 28 | or r32=r32,r17 // xxx 29 | ;; 30 | shr r17=r32,5 // .....xxx 31 | or r32=r32,r16 // xxxxx 32 | ;; 33 | shr r16=r32,8 // ........xxxxx 34 | or r32=r32,r17 // xxxxxxxx 35 | ;; 36 | shr r17=r32,13 37 | or r32=r32,r16 // 13x 38 | ;; 39 | shr r16=r32,21 40 | or r32=r32,r17 // 21x 41 | ;; 42 | shr r17=r32,34 43 | or r32=r32,r16 // 34x 44 | ;; 45 | shr r16=r32,55 46 | or r32=r32,r17 // 55x 47 | ;; 48 | or r32=r32,r16 // 64x 49 | ;; 50 | popcnt r8=r32 51 | ;; 52 | add r8=-1,r8 53 | br.ret.sptk.many b0 54 | .endp __TBB_machine_lg# 55 | -------------------------------------------------------------------------------- /src/tbb/ia64-gas/pause.s: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2005-2020 Intel Corporation 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | .section .text 16 | .align 16 17 | // void __TBB_machine_pause( long count ); 18 | // r32 = count 19 | .proc __TBB_machine_pause# 20 | .global __TBB_machine_pause# 21 | count = r32 22 | __TBB_machine_pause: 23 | hint.m 0 24 | add count=-1,count 25 | ;; 26 | cmp.eq p6,p7=0,count 27 | (p7) br.cond.dpnt __TBB_machine_pause 28 | (p6) br.ret.sptk.many b0 29 | .endp __TBB_machine_pause# 30 | -------------------------------------------------------------------------------- /src/tbb/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |

Overview

5 | This directory contains the source code of the TBB core components. 6 | 7 |

Directories

8 |
9 |
tools_api 10 |
Source code of the interface components provided by the Intel® Parallel Studio tools. 11 |
intel64-masm 12 |
Assembly code for the Intel® 64 architecture. 13 |
ia32-masm 14 |
Assembly code for IA32 architecture. 15 |
ia64-gas 16 |
Assembly code for IA-64 architecture. 17 |
ibm_aix51 18 |
Assembly code for AIX 5.1 port. 19 |
20 | 21 |
22 | Up to parent directory 23 |

24 | Copyright © 2005-2020 Intel Corporation. All Rights Reserved. 25 |

26 | Intel is a registered trademark or trademark of Intel Corporation 27 | or its subsidiaries in the United States and other countries. 28 |

29 | * Other names and brands may be claimed as the property of others. 30 | 31 | 32 | -------------------------------------------------------------------------------- /src/tbb/intel64-masm/atomic_support.asm: -------------------------------------------------------------------------------- 1 | ; Copyright (c) 2005-2020 Intel Corporation 2 | ; 3 | ; Licensed under the Apache License, Version 2.0 (the "License"); 4 | ; you may not use this file except in compliance with the License. 5 | ; You may obtain a copy of the License at 6 | ; 7 | ; http://www.apache.org/licenses/LICENSE-2.0 8 | ; 9 | ; Unless required by applicable law or agreed to in writing, software 10 | ; distributed under the License is distributed on an "AS IS" BASIS, 11 | ; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | ; See the License for the specific language governing permissions and 13 | ; limitations under the License. 14 | 15 | ; DO NOT EDIT - AUTOMATICALLY GENERATED FROM .s FILE 16 | .code 17 | ALIGN 8 18 | PUBLIC __TBB_machine_fetchadd1 19 | __TBB_machine_fetchadd1: 20 | mov rax,rdx 21 | lock xadd [rcx],al 22 | ret 23 | .code 24 | ALIGN 8 25 | PUBLIC __TBB_machine_fetchstore1 26 | __TBB_machine_fetchstore1: 27 | mov rax,rdx 28 | lock xchg [rcx],al 29 | ret 30 | .code 31 | ALIGN 8 32 | PUBLIC __TBB_machine_cmpswp1 33 | __TBB_machine_cmpswp1: 34 | mov rax,r8 35 | lock cmpxchg [rcx],dl 36 | ret 37 | .code 38 | ALIGN 8 39 | PUBLIC __TBB_machine_fetchadd2 40 | __TBB_machine_fetchadd2: 41 | mov rax,rdx 42 | lock xadd [rcx],ax 43 | ret 44 | .code 45 | ALIGN 8 46 | PUBLIC __TBB_machine_fetchstore2 47 | __TBB_machine_fetchstore2: 48 | mov rax,rdx 49 | lock xchg [rcx],ax 50 | ret 51 | .code 52 | ALIGN 8 53 | PUBLIC __TBB_machine_cmpswp2 54 | __TBB_machine_cmpswp2: 55 | mov rax,r8 56 | lock cmpxchg [rcx],dx 57 | ret 58 | .code 59 | ALIGN 8 60 | PUBLIC __TBB_machine_pause 61 | __TBB_machine_pause: 62 | L1: 63 | dw 090f3H; pause 64 | add ecx,-1 65 | jne L1 66 | ret 67 | end 68 | 69 | -------------------------------------------------------------------------------- /src/tbb/intel64-masm/intel64_misc.asm: -------------------------------------------------------------------------------- 1 | ; Copyright (c) 2005-2020 Intel Corporation 2 | ; 3 | ; Licensed under the Apache License, Version 2.0 (the "License"); 4 | ; you may not use this file except in compliance with the License. 5 | ; You may obtain a copy of the License at 6 | ; 7 | ; http://www.apache.org/licenses/LICENSE-2.0 8 | ; 9 | ; Unless required by applicable law or agreed to in writing, software 10 | ; distributed under the License is distributed on an "AS IS" BASIS, 11 | ; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | ; See the License for the specific language governing permissions and 13 | ; limitations under the License. 14 | 15 | .code 16 | ALIGN 8 17 | PUBLIC __TBB_get_cpu_ctl_env 18 | __TBB_get_cpu_ctl_env: 19 | stmxcsr [rcx] 20 | fstcw [rcx+4] 21 | ret 22 | .code 23 | ALIGN 8 24 | PUBLIC __TBB_set_cpu_ctl_env 25 | __TBB_set_cpu_ctl_env: 26 | ldmxcsr [rcx] 27 | fldcw [rcx+4] 28 | ret 29 | end 30 | -------------------------------------------------------------------------------- /src/tbb/lin32-tbb-export.def: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | { 18 | global: 19 | 20 | #define __TBB_SYMBOL( sym ) sym; 21 | #include "lin32-tbb-export.lst" 22 | 23 | local: 24 | 25 | /* TBB symbols */ 26 | *3tbb*; 27 | *__TBB*; 28 | 29 | /* ITT symbols */ 30 | __itt_*; 31 | 32 | /* Intel Compiler (libirc) symbols */ 33 | __intel_*; 34 | _intel_*; 35 | get_memcpy_largest_cachelinesize; 36 | get_memcpy_largest_cache_size; 37 | get_mem_ops_method; 38 | init_mem_ops_method; 39 | irc__get_msg; 40 | irc__print; 41 | override_mem_ops_method; 42 | set_memcpy_largest_cachelinesize; 43 | set_memcpy_largest_cache_size; 44 | 45 | }; 46 | -------------------------------------------------------------------------------- /src/tbb/lin32-tbbbind-export.def: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | { 18 | global: 19 | initialize_numa_topology; 20 | bind_to_node; 21 | restore_affinity; 22 | allocate_binding_handler; 23 | deallocate_binding_handler; 24 | }; 25 | -------------------------------------------------------------------------------- /src/tbb/lin64-tbb-export.def: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | { 18 | global: 19 | 20 | #define __TBB_SYMBOL( sym ) sym; 21 | #include "lin64-tbb-export.lst" 22 | 23 | local: 24 | 25 | /* TBB symbols */ 26 | *3tbb*; 27 | *__TBB*; 28 | 29 | /* ITT symbols */ 30 | __itt_*; 31 | 32 | /* Intel Compiler (libirc) symbols */ 33 | __intel_*; 34 | _intel_*; 35 | get_msg_buf; 36 | get_text_buf; 37 | message_catalog; 38 | print_buf; 39 | irc__get_msg; 40 | irc__print; 41 | 42 | }; 43 | -------------------------------------------------------------------------------- /src/tbb/lin64-tbbbind-export.def: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | { 18 | global: 19 | initialize_numa_topology; 20 | bind_to_node; 21 | restore_affinity; 22 | allocate_binding_handler; 23 | deallocate_binding_handler; 24 | }; 25 | -------------------------------------------------------------------------------- /src/tbb/lin64ipf-tbb-export.def: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | { 18 | global: 19 | 20 | #define __TBB_SYMBOL( sym ) sym; 21 | #include "lin64ipf-tbb-export.lst" 22 | 23 | local: 24 | 25 | /* TBB symbols */ 26 | *3tbb*; 27 | *__TBB*; 28 | 29 | /* ITT symbols */ 30 | __itt_*; 31 | 32 | /* Intel Compiler (libirc) symbols */ 33 | __intel_*; 34 | _intel_*; 35 | ?0_memcopyA; 36 | ?0_memcopyDu; 37 | ?0_memcpyD; 38 | ?1__memcpy; 39 | ?1__memmove; 40 | ?1__serial_memmove; 41 | memcpy; 42 | memset; 43 | 44 | }; 45 | -------------------------------------------------------------------------------- /src/tbb/mac32-tbb-export.def: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #define __TBB_SYMBOL( sym ) _##sym 18 | #include "mac32-tbb-export.lst" 19 | 20 | -------------------------------------------------------------------------------- /src/tbb/mac64-tbb-export.def: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #define __TBB_SYMBOL( sym ) _##sym 18 | #include "mac64-tbb-export.lst" 19 | 20 | -------------------------------------------------------------------------------- /src/tbb/tools_api/disable_warnings.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #include "ittnotify_config.h" 18 | 19 | #if ITT_PLATFORM==ITT_PLATFORM_WIN 20 | 21 | #pragma warning (disable: 593) /* parameter "XXXX" was set but never used */ 22 | #pragma warning (disable: 344) /* typedef name has already been declared (with same type) */ 23 | #pragma warning (disable: 174) /* expression has no effect */ 24 | #pragma warning (disable: 4127) /* conditional expression is constant */ 25 | #pragma warning (disable: 4306) /* conversion from '?' to '?' of greater size */ 26 | 27 | #endif /* ITT_PLATFORM==ITT_PLATFORM_WIN */ 28 | 29 | #if defined __INTEL_COMPILER 30 | 31 | #pragma warning (disable: 869) /* parameter "XXXXX" was never referenced */ 32 | #pragma warning (disable: 1418) /* external function definition with no prior declaration */ 33 | #pragma warning (disable: 1419) /* external declaration in primary source file */ 34 | 35 | #endif /* __INTEL_COMPILER */ 36 | -------------------------------------------------------------------------------- /src/tbb/win32-tbb-export.def: -------------------------------------------------------------------------------- 1 | ; Copyright (c) 2005-2020 Intel Corporation 2 | ; 3 | ; Licensed under the Apache License, Version 2.0 (the "License"); 4 | ; you may not use this file except in compliance with the License. 5 | ; You may obtain a copy of the License at 6 | ; 7 | ; http://www.apache.org/licenses/LICENSE-2.0 8 | ; 9 | ; Unless required by applicable law or agreed to in writing, software 10 | ; distributed under the License is distributed on an "AS IS" BASIS, 11 | ; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | ; See the License for the specific language governing permissions and 13 | ; limitations under the License. 14 | 15 | EXPORTS 16 | 17 | #define __TBB_SYMBOL( sym ) sym 18 | #if _M_ARM 19 | #include "winrt-tbb-export.lst" 20 | #else 21 | #include "win32-tbb-export.lst" 22 | #endif 23 | 24 | 25 | -------------------------------------------------------------------------------- /src/tbb/win32-tbbbind-export.def: -------------------------------------------------------------------------------- 1 | ; Copyright (c) 2005-2020 Intel Corporation 2 | ; 3 | ; Licensed under the Apache License, Version 2.0 (the "License"); 4 | ; you may not use this file except in compliance with the License. 5 | ; You may obtain a copy of the License at 6 | ; 7 | ; http://www.apache.org/licenses/LICENSE-2.0 8 | ; 9 | ; Unless required by applicable law or agreed to in writing, software 10 | ; distributed under the License is distributed on an "AS IS" BASIS, 11 | ; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | ; See the License for the specific language governing permissions and 13 | ; limitations under the License. 14 | 15 | EXPORTS 16 | 17 | global 18 | initialize_numa_topology 19 | bind_to_node 20 | restore_affinity 21 | allocate_binding_handler 22 | deallocate_binding_handler 23 | -------------------------------------------------------------------------------- /src/tbb/win64-gcc-tbb-export.def: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | { 18 | global: 19 | 20 | #define __TBB_SYMBOL( sym ) sym; 21 | #include "win64-gcc-tbb-export.lst" 22 | 23 | local: 24 | 25 | /* TBB symbols */ 26 | *3tbb*; 27 | *__TBB*; 28 | 29 | /* Intel Compiler (libirc) symbols */ 30 | __intel_*; 31 | _intel_*; 32 | get_msg_buf; 33 | get_text_buf; 34 | message_catalog; 35 | print_buf; 36 | irc__get_msg; 37 | irc__print; 38 | 39 | }; 40 | 41 | -------------------------------------------------------------------------------- /src/tbb/win64-tbb-export.def: -------------------------------------------------------------------------------- 1 | ; Copyright (c) 2005-2020 Intel Corporation 2 | ; 3 | ; Licensed under the Apache License, Version 2.0 (the "License"); 4 | ; you may not use this file except in compliance with the License. 5 | ; You may obtain a copy of the License at 6 | ; 7 | ; http://www.apache.org/licenses/LICENSE-2.0 8 | ; 9 | ; Unless required by applicable law or agreed to in writing, software 10 | ; distributed under the License is distributed on an "AS IS" BASIS, 11 | ; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | ; See the License for the specific language governing permissions and 13 | ; limitations under the License. 14 | 15 | ; This file is organized with a section for each .cpp file. 16 | ; Each of these sections is in alphabetical order. 17 | 18 | EXPORTS 19 | 20 | #define __TBB_SYMBOL( sym ) sym 21 | #include "win64-tbb-export.lst" 22 | 23 | -------------------------------------------------------------------------------- /src/tbb/win64-tbbbind-export.def: -------------------------------------------------------------------------------- 1 | ; Copyright (c) 2005-2020 Intel Corporation 2 | ; 3 | ; Licensed under the Apache License, Version 2.0 (the "License"); 4 | ; you may not use this file except in compliance with the License. 5 | ; You may obtain a copy of the License at 6 | ; 7 | ; http://www.apache.org/licenses/LICENSE-2.0 8 | ; 9 | ; Unless required by applicable law or agreed to in writing, software 10 | ; distributed under the License is distributed on an "AS IS" BASIS, 11 | ; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | ; See the License for the specific language governing permissions and 13 | ; limitations under the License. 14 | 15 | EXPORTS 16 | 17 | global 18 | initialize_numa_topology 19 | bind_to_node 20 | restore_affinity 21 | allocate_binding_handler 22 | deallocate_binding_handler 23 | -------------------------------------------------------------------------------- /src/tbbmalloc/lin32-proxy-export.def: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | { 18 | global: 19 | calloc; 20 | free; 21 | malloc; 22 | realloc; 23 | posix_memalign; 24 | memalign; 25 | aligned_alloc; 26 | valloc; 27 | pvalloc; 28 | mallinfo; 29 | mallopt; 30 | malloc_usable_size; 31 | __libc_malloc; 32 | __libc_realloc; 33 | __libc_calloc; 34 | __libc_free; 35 | __libc_memalign; 36 | __libc_pvalloc; 37 | __libc_valloc; 38 | __TBB_malloc_proxy; 39 | _ZdaPv; /* next ones are new/delete */ 40 | _ZdaPvRKSt9nothrow_t; 41 | _ZdlPv; 42 | _ZdlPvRKSt9nothrow_t; 43 | _Znaj; 44 | _ZnajRKSt9nothrow_t; 45 | _Znwj; 46 | _ZnwjRKSt9nothrow_t; 47 | 48 | local: 49 | 50 | /* TBB symbols */ 51 | *3rml8internal*; 52 | *3tbb*; 53 | *__TBB*; 54 | 55 | }; 56 | -------------------------------------------------------------------------------- /src/tbbmalloc/lin64-proxy-export.def: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | { 18 | global: 19 | calloc; 20 | free; 21 | malloc; 22 | realloc; 23 | posix_memalign; 24 | memalign; 25 | aligned_alloc; 26 | valloc; 27 | pvalloc; 28 | mallinfo; 29 | mallopt; 30 | malloc_usable_size; 31 | __libc_malloc; 32 | __libc_realloc; 33 | __libc_calloc; 34 | __libc_free; 35 | __libc_memalign; 36 | __libc_pvalloc; 37 | __libc_valloc; 38 | __TBB_malloc_proxy; 39 | _ZdaPv; /* next ones are new/delete */ 40 | _ZdaPvRKSt9nothrow_t; 41 | _ZdlPv; 42 | _ZdlPvRKSt9nothrow_t; 43 | _Znam; 44 | _ZnamRKSt9nothrow_t; 45 | _Znwm; 46 | _ZnwmRKSt9nothrow_t; 47 | 48 | local: 49 | 50 | /* TBB symbols */ 51 | *3rml8internal*; 52 | *3tbb*; 53 | *__TBB*; 54 | 55 | }; 56 | -------------------------------------------------------------------------------- /src/tbbmalloc/lin64ipf-proxy-export.def: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | { 18 | global: 19 | calloc; 20 | free; 21 | malloc; 22 | realloc; 23 | posix_memalign; 24 | memalign; 25 | aligned_alloc; 26 | valloc; 27 | pvalloc; 28 | mallinfo; 29 | mallopt; 30 | malloc_usable_size; 31 | __libc_malloc; 32 | __libc_realloc; 33 | __libc_calloc; 34 | __libc_free; 35 | __libc_memalign; 36 | __libc_pvalloc; 37 | __libc_valloc; 38 | __TBB_malloc_proxy; 39 | _ZdaPv; /* next ones are new/delete */ 40 | _ZdaPvRKSt9nothrow_t; 41 | _ZdlPv; 42 | _ZdlPvRKSt9nothrow_t; 43 | _Znam; 44 | _ZnamRKSt9nothrow_t; 45 | _Znwm; 46 | _ZnwmRKSt9nothrow_t; 47 | 48 | local: 49 | 50 | /* TBB symbols */ 51 | *3rml8internal*; 52 | *3tbb*; 53 | *__TBB*; 54 | 55 | }; 56 | -------------------------------------------------------------------------------- /src/tbbmalloc/mac32-tbbmalloc-export.def: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | _scalable_calloc 18 | _scalable_free 19 | _scalable_malloc 20 | _scalable_realloc 21 | _scalable_posix_memalign 22 | _scalable_aligned_malloc 23 | _scalable_aligned_realloc 24 | _scalable_aligned_free 25 | _scalable_msize 26 | _scalable_allocation_mode 27 | _scalable_allocation_command 28 | ___TBB_malloc_safer_aligned_msize 29 | ___TBB_malloc_safer_aligned_realloc 30 | ___TBB_malloc_safer_free 31 | ___TBB_malloc_safer_msize 32 | ___TBB_malloc_safer_realloc 33 | ___TBB_malloc_free_definite_size 34 | /* memory pool stuff */ 35 | __ZN3rml11pool_createElPKNS_13MemPoolPolicyE 36 | __ZN3rml14pool_create_v1ElPKNS_13MemPoolPolicyEPPNS_10MemoryPoolE 37 | __ZN3rml10pool_resetEPNS_10MemoryPoolE 38 | __ZN3rml12pool_destroyEPNS_10MemoryPoolE 39 | __ZN3rml11pool_mallocEPNS_10MemoryPoolEm 40 | __ZN3rml9pool_freeEPNS_10MemoryPoolEPv 41 | __ZN3rml12pool_reallocEPNS_10MemoryPoolEPvm 42 | __ZN3rml20pool_aligned_reallocEPNS_10MemoryPoolEPvmm 43 | __ZN3rml19pool_aligned_mallocEPNS_10MemoryPoolEmm 44 | __ZN3rml13pool_identifyEPv 45 | __ZN3rml10pool_msizeEPNS_10MemoryPoolEPv 46 | 47 | -------------------------------------------------------------------------------- /src/tbbmalloc/mac64-tbbmalloc-export.def: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | _scalable_calloc 18 | _scalable_free 19 | _scalable_malloc 20 | _scalable_realloc 21 | _scalable_posix_memalign 22 | _scalable_aligned_malloc 23 | _scalable_aligned_realloc 24 | _scalable_aligned_free 25 | _scalable_msize 26 | _scalable_allocation_mode 27 | _scalable_allocation_command 28 | ___TBB_malloc_safer_aligned_msize 29 | ___TBB_malloc_safer_aligned_realloc 30 | ___TBB_malloc_safer_free 31 | ___TBB_malloc_safer_msize 32 | ___TBB_malloc_safer_realloc 33 | ___TBB_malloc_free_definite_size 34 | /* memory pool stuff */ 35 | __ZN3rml11pool_createElPKNS_13MemPoolPolicyE 36 | __ZN3rml14pool_create_v1ElPKNS_13MemPoolPolicyEPPNS_10MemoryPoolE 37 | __ZN3rml10pool_resetEPNS_10MemoryPoolE 38 | __ZN3rml12pool_destroyEPNS_10MemoryPoolE 39 | __ZN3rml11pool_mallocEPNS_10MemoryPoolEm 40 | __ZN3rml9pool_freeEPNS_10MemoryPoolEPv 41 | __ZN3rml12pool_reallocEPNS_10MemoryPoolEPvm 42 | __ZN3rml20pool_aligned_reallocEPNS_10MemoryPoolEPvmm 43 | __ZN3rml19pool_aligned_mallocEPNS_10MemoryPoolEmm 44 | __ZN3rml13pool_identifyEPv 45 | __ZN3rml10pool_msizeEPNS_10MemoryPoolEPv 46 | 47 | -------------------------------------------------------------------------------- /src/tbbmalloc/tbbmalloc_internal_api.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #ifndef __TBB_tbbmalloc_internal_api_H 18 | #define __TBB_tbbmalloc_internal_api_H 19 | 20 | #ifdef __cplusplus 21 | extern "C" { 22 | #endif /* __cplusplus */ 23 | 24 | typedef enum { 25 | /* Tune usage of source included allocator. Selected value is large enough 26 | to not intercept with constants from AllocationModeParam. */ 27 | TBBMALLOC_INTERNAL_SOURCE_INCLUDED = 65536 28 | } AllocationModeInternalParam; 29 | 30 | void MallocInitializeITT(); 31 | void __TBB_mallocProcessShutdownNotification(bool); 32 | #if _WIN32||_WIN64 33 | void __TBB_mallocThreadShutdownNotification(); 34 | #endif 35 | 36 | #ifdef __cplusplus 37 | } /* extern "C" */ 38 | #endif /* __cplusplus */ 39 | 40 | #endif /* __TBB_tbbmalloc_internal_api_H */ 41 | -------------------------------------------------------------------------------- /src/tbbmalloc/win32-gcc-tbbmalloc-export.def: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | { 18 | global: 19 | scalable_calloc; 20 | scalable_free; 21 | scalable_malloc; 22 | scalable_realloc; 23 | scalable_posix_memalign; 24 | scalable_aligned_malloc; 25 | scalable_aligned_realloc; 26 | scalable_aligned_free; 27 | scalable_msize; 28 | scalable_allocation_mode; 29 | scalable_allocation_command; 30 | __TBB_malloc_safer_free; 31 | __TBB_malloc_safer_realloc; 32 | __TBB_malloc_safer_msize; 33 | __TBB_malloc_safer_aligned_msize; 34 | __TBB_malloc_safer_aligned_realloc; 35 | /* memory pool stuff */ 36 | _ZN3rml10pool_resetEPNS_10MemoryPoolE; 37 | _ZN3rml11pool_createEiPKNS_13MemPoolPolicyE; 38 | _ZN3rml14pool_create_v1EiPKNS_13MemPoolPolicyEPPNS_10MemoryPoolE; 39 | _ZN3rml11pool_mallocEPNS_10MemoryPoolEj; 40 | _ZN3rml12pool_destroyEPNS_10MemoryPoolE; 41 | _ZN3rml9pool_freeEPNS_10MemoryPoolEPv; 42 | _ZN3rml12pool_reallocEPNS_10MemoryPoolEPvj; 43 | _ZN3rml20pool_aligned_reallocEPNS_10MemoryPoolEPvjj; 44 | _ZN3rml19pool_aligned_mallocEPNS_10MemoryPoolEjj; 45 | _ZN3rml13pool_identifyEPv; 46 | _ZN3rml10pool_msizeEPNS_10MemoryPoolEPv; 47 | 48 | local:*; 49 | }; 50 | -------------------------------------------------------------------------------- /src/tbbmalloc/win32-tbbmalloc-export.def: -------------------------------------------------------------------------------- 1 | ; Copyright (c) 2005-2020 Intel Corporation 2 | ; 3 | ; Licensed under the Apache License, Version 2.0 (the "License"); 4 | ; you may not use this file except in compliance with the License. 5 | ; You may obtain a copy of the License at 6 | ; 7 | ; http://www.apache.org/licenses/LICENSE-2.0 8 | ; 9 | ; Unless required by applicable law or agreed to in writing, software 10 | ; distributed under the License is distributed on an "AS IS" BASIS, 11 | ; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | ; See the License for the specific language governing permissions and 13 | ; limitations under the License. 14 | 15 | EXPORTS 16 | 17 | ; frontend.cpp 18 | scalable_calloc 19 | scalable_free 20 | scalable_malloc 21 | scalable_realloc 22 | scalable_posix_memalign 23 | scalable_aligned_malloc 24 | scalable_aligned_realloc 25 | scalable_aligned_free 26 | scalable_msize 27 | scalable_allocation_mode 28 | scalable_allocation_command 29 | __TBB_malloc_safer_free 30 | __TBB_malloc_safer_realloc 31 | __TBB_malloc_safer_msize 32 | __TBB_malloc_safer_aligned_msize 33 | __TBB_malloc_safer_aligned_realloc 34 | ?pool_create@rml@@YAPAVMemoryPool@1@HPBUMemPoolPolicy@1@@Z 35 | ?pool_create_v1@rml@@YA?AW4MemPoolError@1@HPBUMemPoolPolicy@1@PAPAVMemoryPool@1@@Z 36 | ?pool_destroy@rml@@YA_NPAVMemoryPool@1@@Z 37 | ?pool_malloc@rml@@YAPAXPAVMemoryPool@1@I@Z 38 | ?pool_free@rml@@YA_NPAVMemoryPool@1@PAX@Z 39 | ?pool_reset@rml@@YA_NPAVMemoryPool@1@@Z 40 | ?pool_realloc@rml@@YAPAXPAVMemoryPool@1@PAXI@Z 41 | ?pool_aligned_realloc@rml@@YAPAXPAVMemoryPool@1@PAXII@Z 42 | ?pool_aligned_malloc@rml@@YAPAXPAVMemoryPool@1@II@Z 43 | ?pool_identify@rml@@YAPAVMemoryPool@1@PAX@Z 44 | ?pool_msize@rml@@YAIPAVMemoryPool@1@PAX@Z 45 | 46 | -------------------------------------------------------------------------------- /src/tbbmalloc/win64-gcc-tbbmalloc-export.def: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | { 18 | global: 19 | scalable_calloc; 20 | scalable_free; 21 | scalable_malloc; 22 | scalable_realloc; 23 | scalable_posix_memalign; 24 | scalable_aligned_malloc; 25 | scalable_aligned_realloc; 26 | scalable_aligned_free; 27 | scalable_msize; 28 | scalable_allocation_mode; 29 | scalable_allocation_command; 30 | __TBB_malloc_safer_free; 31 | __TBB_malloc_safer_realloc; 32 | __TBB_malloc_safer_msize; 33 | __TBB_malloc_safer_aligned_msize; 34 | __TBB_malloc_safer_aligned_realloc; 35 | /* memory pool stuff */ 36 | _ZN3rml10pool_resetEPNS_10MemoryPoolE; 37 | _ZN3rml11pool_createExPKNS_13MemPoolPolicyE; 38 | _ZN3rml14pool_create_v1ExPKNS_13MemPoolPolicyEPPNS_10MemoryPoolE; 39 | _ZN3rml11pool_mallocEPNS_10MemoryPoolEy; 40 | _ZN3rml12pool_destroyEPNS_10MemoryPoolE; 41 | _ZN3rml9pool_freeEPNS_10MemoryPoolEPv; 42 | _ZN3rml12pool_reallocEPNS_10MemoryPoolEPvy; 43 | _ZN3rml20pool_aligned_reallocEPNS_10MemoryPoolEPvyy; 44 | _ZN3rml19pool_aligned_mallocEPNS_10MemoryPoolEyy; 45 | _ZN3rml13pool_identifyEPv; 46 | _ZN3rml10pool_msizeEPNS_10MemoryPoolEPv; 47 | 48 | local:*; 49 | }; 50 | -------------------------------------------------------------------------------- /src/tbbmalloc/win64-tbbmalloc-export.def: -------------------------------------------------------------------------------- 1 | ; Copyright (c) 2005-2020 Intel Corporation 2 | ; 3 | ; Licensed under the Apache License, Version 2.0 (the "License"); 4 | ; you may not use this file except in compliance with the License. 5 | ; You may obtain a copy of the License at 6 | ; 7 | ; http://www.apache.org/licenses/LICENSE-2.0 8 | ; 9 | ; Unless required by applicable law or agreed to in writing, software 10 | ; distributed under the License is distributed on an "AS IS" BASIS, 11 | ; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | ; See the License for the specific language governing permissions and 13 | ; limitations under the License. 14 | 15 | EXPORTS 16 | 17 | ; frontend.cpp 18 | scalable_calloc 19 | scalable_free 20 | scalable_malloc 21 | scalable_realloc 22 | scalable_posix_memalign 23 | scalable_aligned_malloc 24 | scalable_aligned_realloc 25 | scalable_aligned_free 26 | scalable_msize 27 | scalable_allocation_mode 28 | scalable_allocation_command 29 | __TBB_malloc_safer_free 30 | __TBB_malloc_safer_realloc 31 | __TBB_malloc_safer_msize 32 | __TBB_malloc_safer_aligned_msize 33 | __TBB_malloc_safer_aligned_realloc 34 | ; memory pool stuff 35 | ?pool_create@rml@@YAPEAVMemoryPool@1@_JPEBUMemPoolPolicy@1@@Z 36 | ?pool_create_v1@rml@@YA?AW4MemPoolError@1@_JPEBUMemPoolPolicy@1@PEAPEAVMemoryPool@1@@Z 37 | ?pool_destroy@rml@@YA_NPEAVMemoryPool@1@@Z 38 | ?pool_malloc@rml@@YAPEAXPEAVMemoryPool@1@_K@Z 39 | ?pool_free@rml@@YA_NPEAVMemoryPool@1@PEAX@Z 40 | ?pool_reset@rml@@YA_NPEAVMemoryPool@1@@Z 41 | ?pool_realloc@rml@@YAPEAXPEAVMemoryPool@1@PEAX_K@Z 42 | ?pool_aligned_realloc@rml@@YAPEAXPEAVMemoryPool@1@PEAX_K2@Z 43 | ?pool_aligned_malloc@rml@@YAPEAXPEAVMemoryPool@1@_K1@Z 44 | ?pool_identify@rml@@YAPEAVMemoryPool@1@PEAX@Z 45 | ?pool_msize@rml@@YA_KPEAVMemoryPool@1@PEAX@Z 46 | 47 | -------------------------------------------------------------------------------- /src/test/harness_assert.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | // Just the assertion portion of the harness. 18 | // This is useful for writing portions of tests that include 19 | // the minimal number of necessary header files. 20 | // 21 | // The full "harness.h" must be included later. 22 | 23 | #ifndef harness_assert_H 24 | #define harness_assert_H 25 | 26 | void ReportError( const char* filename, int line, const char* expression, const char* message); 27 | void ReportWarning( const char* filename, int line, const char* expression, const char* message); 28 | 29 | #define ASSERT_CUSTOM(p,message,file,line) ((p)?(void)0:ReportError(file,line,#p,message)) 30 | #define ASSERT(p,message) ASSERT_CUSTOM(p,message,__FILE__,__LINE__) 31 | #define ASSERT_WARNING(p,message) ((p)?(void)0:ReportWarning(__FILE__,__LINE__,#p,message)) 32 | 33 | //! Compile-time error if x and y have different types 34 | template 35 | void AssertSameType( const T& /*x*/, const T& /*y*/ ) {} 36 | 37 | #endif /* harness_assert_H */ 38 | -------------------------------------------------------------------------------- /src/test/harness_mic.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #ifndef tbb_test_harness_mic_H 18 | #define tbb_test_harness_mic_H 19 | 20 | #if ! __TBB_DEFINE_MIC 21 | #error test/harness_mic.h should be included only when building for Intel(R) Many Integrated Core Architecture 22 | #endif 23 | 24 | // test for unifed sources. See makefiles 25 | #undef HARNESS_INCOMPLETE_SOURCES 26 | 27 | #include 28 | #include 29 | 30 | #define TBB_TEST_LOW_WORKLOAD 1 31 | 32 | #define REPORT_FATAL_ERROR REPORT 33 | #define HARNESS_EXPORT 34 | 35 | #if __TBB_MIC_NATIVE 36 | #define HARNESS_EXIT_ON_ASSERT 1 37 | #define __TBB_PLACEMENT_NEW_EXCEPTION_SAFETY_BROKEN 1 38 | #else 39 | #define HARNESS_TERMINATE_ON_ASSERT 1 40 | #endif 41 | 42 | #endif /* tbb_test_harness_mic_H */ 43 | -------------------------------------------------------------------------------- /src/test/harness_runtime_loader.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #ifndef harness_runtime_loader_H 18 | #define harness_runtime_loader_H 19 | 20 | #if HARNESS_USE_RUNTIME_LOADER 21 | #if TEST_USES_TBB 22 | #define TBB_PREVIEW_RUNTIME_LOADER 1 23 | #include "tbb/runtime_loader.h" 24 | static char const * _path[] = { ".", NULL }; 25 | // declaration must be placed before 1st TBB call 26 | static tbb::runtime_loader _runtime_loader( _path ); 27 | #else // TEST_USES_TBB 28 | // if TBB library is not used, no need to test Runtime Loader 29 | #define HARNESS_SKIP_TEST 1 30 | #endif // TEST_USES_TBB 31 | #endif // HARNESS_USE_RUNTIME_LOADER 32 | 33 | #endif /* harness_runtime_loader_H */ 34 | -------------------------------------------------------------------------------- /src/test/test_arena_constraints_stubs.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2019-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | #define TBB_PREVIEW_NUMA_SUPPORT 1 17 | #include "tbb/tbb_config.h" 18 | 19 | #include "harness.h" 20 | 21 | #include "tbb/task_arena.h" 22 | #include "tbb/task_scheduler_init.h" 23 | 24 | #include 25 | 26 | void test_stubs(std::vector numa_indexes) { 27 | ASSERT(numa_indexes.size() == 1, "Number of NUMA nodes must be pinned to 1," 28 | " if we have no HWLOC on the system."); 29 | ASSERT(numa_indexes[0] == -1, "Index of NUMA node must be pinned to 0," 30 | " if we have no HWLOC on the system."); 31 | ASSERT(tbb::info::default_concurrency(numa_indexes[0]) == tbb::task_scheduler_init::default_num_threads(), 32 | "Concurrency for NUMA node must be equal to default_num_threads()," 33 | " if we have no HWLOC on the system."); 34 | } 35 | 36 | int TestMain() { 37 | std::vector numa_indexes = tbb::info::numa_nodes(); 38 | test_stubs(numa_indexes); 39 | 40 | return Harness::Done; 41 | } 42 | -------------------------------------------------------------------------------- /src/test/test_cache_aligned_allocator_STL.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | // Test whether cache_aligned_allocator works with some of the host's STL containers. 18 | 19 | #include "tbb/cache_aligned_allocator.h" 20 | #include "tbb/tbb_allocator.h" 21 | 22 | #define HARNESS_NO_PARSE_COMMAND_LINE 1 23 | #include "test_allocator_STL.h" 24 | 25 | int TestMain () { 26 | TestAllocatorWithSTL >(); 27 | TestAllocatorWithSTL >(); 28 | TestAllocatorWithSTL >(); 29 | 30 | #if __TBB_CPP17_MEMORY_RESOURCE_PRESENT 31 | tbb::cache_aligned_resource aligned_resource; 32 | tbb::cache_aligned_resource equal_aligned_resource(std::pmr::get_default_resource()); 33 | ASSERT(aligned_resource.is_equal(equal_aligned_resource), 34 | "Underlying upstream resources should be equal."); 35 | ASSERT(!aligned_resource.is_equal(*std::pmr::null_memory_resource()), 36 | "Cache aligned resource upstream shouldn't be equal to the standard resource."); 37 | TestAllocatorWithSTL(std::pmr::polymorphic_allocator(&aligned_resource)); 38 | #endif 39 | 40 | return Harness::Done; 41 | } 42 | 43 | -------------------------------------------------------------------------------- /src/test/test_handle_perror.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | // Program for basic correctness of handle_perror, which is internal 18 | // to the TBB shared library. 19 | 20 | #include 21 | #include 22 | 23 | #include "../tbb/tbb_misc.h" 24 | #include "harness.h" 25 | 26 | #if TBB_USE_EXCEPTIONS 27 | 28 | static void TestHandlePerror() { 29 | bool caught = false; 30 | try { 31 | tbb::internal::handle_perror( EAGAIN, "apple" ); 32 | } catch( std::runtime_error& e ) { 33 | #if TBB_USE_EXCEPTIONS 34 | REMARK("caught runtime_exception('%s')\n",e.what()); 35 | ASSERT( memcmp(e.what(),"apple: ",7)==0, NULL ); 36 | ASSERT( strlen(strstr(e.what(), strerror(EAGAIN))), "bad error message?" ); 37 | #endif /* TBB_USE_EXCEPTIONS */ 38 | caught = true; 39 | } 40 | ASSERT( caught, NULL ); 41 | } 42 | 43 | int TestMain () { 44 | TestHandlePerror(); 45 | return Harness::Done; 46 | } 47 | 48 | #else /* !TBB_USE_EXCEPTIONS */ 49 | 50 | int TestMain () { 51 | return Harness::Skipped; 52 | } 53 | 54 | #endif /* TBB_USE_EXCEPTIONS */ 55 | -------------------------------------------------------------------------------- /src/test/test_opencl_kernel_32.spir: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wjakob/tbb/9e219e24fe223b299783200f217e9d27790a87b0/src/test/test_opencl_kernel_32.spir -------------------------------------------------------------------------------- /src/test/test_opencl_kernel_64.spir: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wjakob/tbb/9e219e24fe223b299783200f217e9d27790a87b0/src/test/test_opencl_kernel_64.spir -------------------------------------------------------------------------------- /src/test/test_opencl_precompiled_kernel_gpu_32.ir: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wjakob/tbb/9e219e24fe223b299783200f217e9d27790a87b0/src/test/test_opencl_precompiled_kernel_gpu_32.ir -------------------------------------------------------------------------------- /src/test/test_opencl_precompiled_kernel_gpu_64.ir: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wjakob/tbb/9e219e24fe223b299783200f217e9d27790a87b0/src/test/test_opencl_precompiled_kernel_gpu_64.ir -------------------------------------------------------------------------------- /src/test/test_std_thread.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #define TBB_IMPLEMENT_CPP0X 1 18 | #include "tbb/tbb_config.h" 19 | 20 | #if __TBB_WIN8UI_SUPPORT 21 | #define HARNESS_NO_PARSE_COMMAND_LINE 1 22 | #include "harness.h" 23 | int TestMain() { 24 | return Harness::Skipped; 25 | } 26 | #else 27 | #include "tbb/compat/thread" 28 | #define THREAD std::thread 29 | #define THIS_THREAD std::this_thread 30 | #define THIS_THREAD_SLEEP THIS_THREAD::sleep_for 31 | #include "test_thread.h" 32 | #include "harness.h" 33 | 34 | int TestMain () { 35 | CheckSignatures(); 36 | RunTests(); 37 | return Harness::Done; 38 | } 39 | #endif 40 | -------------------------------------------------------------------------------- /src/test/test_tbb_condition_variable.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #include "tbb/tbb_config.h" 18 | 19 | #include "test_condition_variable.h" 20 | 21 | int TestMain() { 22 | REMARK( "testing with tbb condvar\n" ); 23 | DoCondVarTest(); 24 | return Harness::Done; 25 | } 26 | -------------------------------------------------------------------------------- /src/test/test_tbb_thread.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2005-2020 Intel Corporation 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #include "tbb/tbb_thread.h" 18 | #define THREAD tbb::tbb_thread 19 | #define THIS_THREAD tbb::this_tbb_thread 20 | #define THIS_THREAD_SLEEP THIS_THREAD::sleep 21 | #include "test_thread.h" 22 | #include "harness.h" 23 | 24 | /* we want to test tbb::tbb_thread */ 25 | int TestMain () { 26 | CheckSignatures(); 27 | RunTests(); 28 | return Harness::Done; 29 | } 30 | --------------------------------------------------------------------------------