['s_20the_20goal_20of_20taskflow_0',['Q1: What's the goal of Taskflow?',['../FAQ.html#GeneralQuestion1',1,'']]],
['s_20wrong_1',['Q5: My program hangs and never returns after dispatching a taskflow graph. What's wrong?',['../FAQ.html#ProgrammingQuestions5',1,'']]],
['safe_2',['safe',['../FAQ.html#ProgrammingQuestions3',1,'Q3: Is taskflow thread-safe?'],['../FAQ.html#ProgrammingQuestions4',1,'Q4: Is executor thread-safe?']]],
['safety_20of_20executor_3',['Thread Safety of Executor',['../ExecuteTaskflow.html#ThreadSafetyOfExecution',1,'']]],
['salesman_20problem_4',['Salesman Problem',['../ExamplesTSP.html',1,'Travelling Salesman Problem'],['../ExamplesTSP.html#TSPIntroduction',1,'What is the Travelling Salesman Problem?']]],
['scalablepipeline_10',['ScalablePipeline',['../classtf_1_1ScalablePipeline.html',1,'tf::ScalablePipeline< P >'],['../classtf_1_1ScalablePipeline.html#a26f5e7e768b77f9e95100c5d6467db71',1,'tf::ScalablePipeline::ScalablePipeline()=default'],['../classtf_1_1ScalablePipeline.html#a0f99aa297a26b97d549b62722d91e8ca',1,'tf::ScalablePipeline::ScalablePipeline(size_t num_lines)'],['../classtf_1_1ScalablePipeline.html#a884818f628bbd4ab876d566b1d2d62dc',1,'tf::ScalablePipeline::ScalablePipeline(size_t num_lines, P first, P last)'],['../classtf_1_1ScalablePipeline.html#a1a8898df4d2224d5f8bd2f3ad14c0ab9',1,'tf::ScalablePipeline::ScalablePipeline(const ScalablePipeline &)=delete'],['../classtf_1_1ScalablePipeline.html#a1ab74fa599b0f1489df398cf039b73e5',1,'tf::ScalablePipeline::ScalablePipeline(ScalablePipeline &&rhs)']]],
['semaphore_26',['Semaphore',['../LimitTheMaximumConcurrency.html#DefineASemaphore',1,'Define a Semaphore'],['../LimitTheMaximumConcurrency.html#ResetASemaphore',1,'Reset a Semaphore'],['../classtf_1_1Semaphore.html',1,'tf::Semaphore'],['../classtf_1_1Semaphore.html#a6c5eda744df63aabf30398142a8c73c2',1,'tf::Semaphore::Semaphore()=default'],['../classtf_1_1Semaphore.html#abbd094f2f48025fbf0707ae977307a3e',1,'tf::Semaphore::Semaphore(size_t max_value)']]],
['semaphores_27',['Understand the Limitation of Semaphores',['../LimitTheMaximumConcurrency.html#UnderstandTheLimitationOfSemaphores',1,'']]],
['semaphores_20across_20different_20tasks_28',['Use Semaphores Across Different Tasks',['../LimitTheMaximumConcurrency.html#UseSemaphoresAcrossDifferentTasks',1,'']]],
['silent_5fasync_32',['silent_async',['../classtf_1_1Executor.html#a0461cb2c459c9f9473c72af06af9c701',1,'tf::Executor::silent_async(P &&params, F &&func)'],['../classtf_1_1Executor.html#a878ec1bc337c7efe22619b21ba3ecdf3',1,'tf::Executor::silent_async(F &&func)'],['../classtf_1_1Runtime.html#a0ce29efa2106c8c5a1432e4a55ab2e05',1,'tf::Runtime::silent_async(F &&f)'],['../classtf_1_1Runtime.html#a532d8cd09ebee59023e3ad65f3220f4e',1,'tf::Runtime::silent_async(P &&params, F &&f)'],['../classtf_1_1TaskGroup.html#acf90acfcaf9468adc56bf647208a9e78',1,'tf::TaskGroup::silent_async(F &&f)'],['../classtf_1_1TaskGroup.html#ac3284167c1e67bed2590d075eead9741',1,'tf::TaskGroup::silent_async(P &&params, F &&f)']]],
['silent_5fdependent_5fasync_33',['silent_dependent_async',['../classtf_1_1Executor.html#a09e04696a50841c118472b2c2a7ff6f5',1,'tf::Executor::silent_dependent_async(F &&func, Tasks &&... tasks)'],['../classtf_1_1Executor.html#ae8993cdfe408290801b1fb6e01490222',1,'tf::Executor::silent_dependent_async(P &&params, F &&func, Tasks &&... tasks)'],['../classtf_1_1Executor.html#a86a5f8cd4427df6285b03945120c9ab5',1,'tf::Executor::silent_dependent_async(F &&func, I first, I last)'],['../classtf_1_1Executor.html#a27816ff6805002b6292bacda52c56dca',1,'tf::Executor::silent_dependent_async(P &&params, F &&func, I first, I last)'],['../classtf_1_1Runtime.html#a65c30be3a899dcd1ba16ad50ebb8de0d',1,'tf::Runtime::silent_dependent_async(F &&func, Tasks &&... tasks)'],['../classtf_1_1Runtime.html#a992ae0549a4e53aa760c4c6404d2d606',1,'tf::Runtime::silent_dependent_async(P &&params, F &&func, Tasks &&... tasks)'],['../classtf_1_1Runtime.html#a6ee211e58dfc8317d649dde61e17476a',1,'tf::Runtime::silent_dependent_async(F &&func, I first, I last)'],['../classtf_1_1Runtime.html#a70021b113d0b24199e2edc68ebcd37e6',1,'tf::Runtime::silent_dependent_async(P &&params, F &&func, I first, I last)'],['../classtf_1_1TaskGroup.html#a628e8d63dfb8e9361729a5cc99b07df0',1,'tf::TaskGroup::silent_dependent_async(F &&func, Tasks &&... tasks)'],['../classtf_1_1TaskGroup.html#a5d302168b9f6ccdeff8f89462fafa2de',1,'tf::TaskGroup::silent_dependent_async(P &&params, F &&func, Tasks &&... tasks)'],['../classtf_1_1TaskGroup.html#a7a57b0519f4d236ba8adc4de07e71c89',1,'tf::TaskGroup::silent_dependent_async(F &&func, I first, I last)'],['../classtf_1_1TaskGroup.html#a79439d37dd6fd0a267d1388943d65db4',1,'tf::TaskGroup::silent_dependent_async(P &&params, F &&func, I first, I last)']]],
['simplify_20the_20gpu_20kernel_20programming_34',['Q10: Do you try to simplify the GPU kernel programming?',['../FAQ.html#GeneralQuestion10',1,'']]],
['smallvector_37',['SmallVector',['../classtf_1_1SmallVector.html',1,'tf::SmallVector< T, N >'],['../classtf_1_1SmallVector.html#a7948bf82d89a97740fc6ae7eb484a14d',1,'tf::SmallVector::SmallVector()'],['../classtf_1_1SmallVector.html#a092160eaf54d09827daaa8875c089226',1,'tf::SmallVector::SmallVector(size_t Size, const T &Value=T())'],['../classtf_1_1SmallVector.html#a0e0c9ea3b175d1e48e640434f9839380',1,'tf::SmallVector::SmallVector(ItTy S, ItTy E)'],['../classtf_1_1SmallVector.html#ad45a8ae1e4b0d313e56d84787e3d9c91',1,'tf::SmallVector::SmallVector(std::initializer_list< T > IL)'],['../classtf_1_1SmallVector.html#a7a3ca548c2b19ce570265b6dad2dfff7',1,'tf::SmallVector::SmallVector(const SmallVector &RHS)'],['../classtf_1_1SmallVector.html#acf74c15d1ba09f9d71e706859613c005',1,'tf::SmallVector::SmallVector(SmallVector &&RHS)'],['../classtf_1_1SmallVector.html#a2507828c99bdc8d13cc57ec762689e2b',1,'tf::SmallVector::SmallVector(SmallVectorImpl< T > &&RHS)']]],
['sort_43',['sort',['../classtf_1_1FlowBuilder.html#a35e180eb63de6c9f28e43185e837a4fa',1,'tf::FlowBuilder::sort(B first, E last, C cmp)'],['../classtf_1_1FlowBuilder.html#a7d844e9856c7c65b26ccdb83ffdab1d6',1,'tf::FlowBuilder::sort(B first, E last)']]],
['sort_20a_20range_20of_20items_44',['Sort a Range of Items',['../ParallelSort.html#ParallelSortCreate',1,'']]],
['source_20task_52',['Pitfall 1: No Source Task',['../ConditionalTasking.html#PitfallNoSourceTask',1,'']]],
['sparse_20matrix_20vector_20multiplication_53',['Sparse Matrix Vector Multiplication',['../ExamplesSpMV.html',1,'Sparse Matrix-Vector Multiplication'],['../ExamplesSpMV.html#SpMVIntroduction',1,'What is Sparse Matrix-Vector Multiplication?']]],
['spawn_20tasks_20from_20a_20runtime_54',['Spawn Tasks from a Runtime',['../RuntimeTasking.html#SpawnTasksFromARuntime',1,'']]],
['spawns_20a_20joined_20subflow_20of_20three_20tasks_20b1_20b2_20and_20b3_20do_20they_20run_20concurrently_20with_20task_20a_55',['Q6: In the following example where B spawns a joined subflow of three tasks B1, B2, and B3, do they run concurrently with task A?',['../FAQ.html#ProgrammingQuestions6',1,'']]],
['specific_20gpu_56',['Run a CUDA Graph on Specific GPU',['../GPUTasking.html#RunACUDAGraphOnASpecificGPU',1,'']]],
['specify_20a_20range_20of_20dependencies_57',['Specify a Range of Dependencies',['../DependentAsyncTasking.html#SpecifyARangeOfDependencies',1,'']]],
['specify_20the_20number_20of_20rounds_58',['Specify the Number of Rounds',['../BenchmarkTaskflow.html#SpecifyTheNumberOfRounds',1,'']]],
['specify_20the_20number_20of_20threads_59',['Specify the Number of Threads',['../BenchmarkTaskflow.html#SpecifyTheNumberOfThreads',1,'']]],
['specify_20the_20run_20model_60',['Specify the Run Model',['../BenchmarkTaskflow.html#SpecifyTheRunModel',1,'']]],
['standard_20parallel_20algorithms_66',['Standard Parallel Algorithms',['../release-3-2-0.html#release-3-2-0_cuda_std_algorithms',1,'CUDA Standard Parallel Algorithms'],['../index.html#QuickStartLeverageStandardParallelAlgorithms',1,'Leverage Standard Parallel Algorithms']]],
['start_20your_20first_20taskflow_20program_67',['Start Your First Taskflow Program',['../index.html#ASimpleFirstProgram',1,'']]],
['started_68',['How Can I Get Started?',['../guidelines.html#HowCanIGetStarted',1,'']]],
['static_20construction_20fails_70',['Why Static Construction Fails',['../ExamplesDynamicDependencyGraph.html#DynamicDependencyGraphStaticFails',1,'']]],
['static_20partitioner_71',['Define a Static Partitioner',['../PartitioningAlgorithm.html#DefineAStaticPartitioner',1,'']]],
['static_20task_20graphs_20are_20not_20enough_72',['When Static Task Graphs Are Not Enough',['../DependentAsyncTasking.html#WhenStaticTaskGraphsAreNotEnough',1,'']]],
['static_20tasking_20and_20dynamic_20tasking_74',['Q3: What is the difference between static tasking and dynamic tasking?',['../FAQ.html#GeneralQuestion3',1,'']]],
['staticpartitioner_78',['StaticPartitioner',['../classtf_1_1StaticPartitioner.html',1,'tf::StaticPartitioner< C >'],['../classtf_1_1StaticPartitioner.html#a3b8b8040830d1d9f9635090e9af8edf8',1,'tf::StaticPartitioner::StaticPartitioner()=default'],['../classtf_1_1StaticPartitioner.html#aa6dacbd41f721303afe089f65f9f6549',1,'tf::StaticPartitioner::StaticPartitioner(size_t sz)'],['../classtf_1_1StaticPartitioner.html#ac4fb48bea1252246857e11993bee68c6',1,'tf::StaticPartitioner::StaticPartitioner(size_t sz, C &&closure)']]],
['status_20with_20cooperative_20execution_81',['Query Completion Status with Cooperative Execution',['../DependentAsyncTasking.html#QueryTheCompletionStatusOfDependentAsyncTasks',1,'']]],
['storage_93',['Storage',['../TaskflowProcessingPipeline.html#TaskflowPipelineStorage',1,'Taskflow Storage'],['../DataParallelPipeline.html#UnderstandInternalDataStorage',1,'Understand Internal Data Storage']]],
['subflow_99',['Subflow',['../ExceptionHandling.html#ExceptionHandlingSubflow',1,'Catch an Exception from a Subflow'],['../SubflowTasking.html#CreateANestedSubflow',1,'Create a Nested Subflow'],['../SubflowTasking.html#CreateASubflow',1,'Create a Subflow'],['../SubflowTasking.html#RetainASubflow',1,'Retain a Subflow'],['../classtf_1_1Subflow.html',1,'tf::Subflow']]],
['subflow_20explicitly_100',['Join a Subflow Explicitly',['../SubflowTasking.html#JoinASubflow',1,'']]],
['subflow_20graph_101',['Create a Subflow Graph',['../index.html#QuickStartCreateASubflowGraph',1,'']]],
['subflow_20of_20three_20tasks_20b1_20b2_20and_20b3_20do_20they_20run_20concurrently_20with_20task_20a_102',['Q6: In the following example where B spawns a joined subflow of three tasks B1, B2, and B3, do they run concurrently with task A?',['../FAQ.html#ProgrammingQuestions6',1,'']]],