Multi-thread apps for Multi-Core

Link/UrlTags
False Sharing [Knowledgebase]
Challenge Identify and eliminate false sharing in a threaded application. For example, two threads could use unique data elements on the same cache line for read and write. When one of the thread ...

Posted: 2009-03-02 16:14:30 by
Multi-thread apps for Multi-Core, How to thread?, Performance analysis, Glossary of Technical Terms, Parallel Programming & Multi-Core
OpenMP [Knowledgebase]
OpenMP samples   These samples can be downloaded from Open MP Source code repository in SourceForge.  Also refer to  OpenMP specifications in openmp.org.   List of samples in the above ...

Posted: 2009-03-09 14:16:42 by
Multi-thread apps for Multi-Core, Threaded Code examples, Glossary of Technical Terms, Parallel Programming & Multi-Core
Experience in threading [Knowledgebase]
It would be great to hear about your experiences in threading.  Please create a subpage here to share your experiences.Was your application amenable to partitioning into threads easily? Wha ...

Posted: 2007-09-04 13:30:04 by
Multi-thread apps for Multi-Core
Analysis Phase of Threaded Application Development Cycle [Knowledgebase]
Challenge Develop a methodology for the analysis phase of the development cycle. Typically, the analysis stage for a threaded application involves profiling a serial application to determine regi ...

Posted: 2009-03-01 22:07:31 by
analysis, Multi-thread apps for Multi-Core, How to thread?
Apply Data Decomposition to Create Threaded Code [Knowledgebase]
Challenge Implement data decomposition on a serial function in order to produce a threaded version. The threaded version creates threads, each performing individual pieces of a computationally in ...

Posted: 2009-03-02 08:10:40 by
analysis, Multi-thread apps for Multi-Core, How to thread?
Apply Functional Decomposition to Improve Efficiency of Input/Output Operations [Knowledgebase]
Challenge Decrease the overhead in program execution that is associated with Input/Output (I/O) operations. The following diagram represents the setup, execution, and finish-up phases of a thread ...

Posted: 2009-03-02 08:14:55 by
analysis, Multi-thread apps for Multi-Core, How to thread?
Choose the Right Threading Model (Task-Parallel or Data-Parallel Threading) [Knowledgebase]
Challenge Choose task-level or data-parallel threading for various parts of an application. Choosing the right threading method minimizes the amount of time spent modifying, debugging, and tuning ...

Posted: 2009-01-27 09:49:32 by
analysis, Multi-thread apps for Multi-Core, How to thread?
Debugging & Testing Phase of Threaded Application Development [Knowledgebase]
Challenge Develop a methodology for the debugging & testing phase of the development cycle. In most situations, the debug and testing stages of threading go hand in hand. Solution Run t ...

Posted: 2009-03-02 13:14:47 by
analysis, Multi-thread apps for Multi-Core, How to thread?
Implement Threading in a Data-Decomposition Problem [Knowledgebase]
Challenge Apply threading to data-decomposition problems in the Implementation Phase of application development. Data-decomposition problems are situations where multiple threads need to be assig ...

Posted: 2009-03-05 08:50:28 by
analysis, Multi-thread apps for Multi-Core, How to thread?
Structure the Design Phase of Threaded Application Development Cycle [Knowledgebase]
Challenge Develop a methodology for the design phase of the development cycle. Regions identified by the analysis phase are examined during the design phase to determine changes that must be made ...

Posted: 2009-03-10 17:39:09 by
analysis, Multi-thread apps for Multi-Core, How to thread?
Structure the Implementation Phase of Threaded Application Development [Knowledgebase]
Challenge Develop a methodology for the implementation phase of the development cycle. The implementation phase involves converting design issues to actual code by selecting an appropriate thread ...

Posted: 2009-03-10 17:50:19 by
analysis, Multi-thread apps for Multi-Core, How to thread?
Tuning Phase of Threaded Application Development [Knowledgebase]
Challenge Develop a methodology for the tuning phase of the development cycle. The tuning phase increases performance incrementally where possible. Solution Identify potential performance p ...

Posted: 2008-12-08 15:21:11 by
analysis, Multi-thread apps for Multi-Core, How to thread?
Implement Threading in a Functional-Decomposition Problem [Knowledgebase]
Challenge Apply threading to functional-decomposition problems in the Implementation Phase of application development. Functional-decomposition problems are situations where the roles of differen ...

Posted: 2009-03-05 09:05:20 by
Multi-thread apps for Multi-Core, How to thread?, Design
Performance Degradation Due to Spin-Wait Loops on Hyper-Threading Technology-Enabled Systems [Knowledgebase]
Challenge Prevent negative performance impacts in application execution due to spin-wait loops on systems that support Hyper-Threading Technology.A spin-wait loop is a technique used in multithre ...

Posted: 2009-03-09 16:10:42 by
Multi-thread apps for Multi-Core, How to thread?, Design
Resolve Memory Conflicts in Data-Decomposition Problems [Knowledgebase]
Challenge Identify memory conflicts in a data-decomposition problem to identify data-restructuring requirements. This procedure is part of the design phase for threaded applications that is neces ...

Posted: 2009-03-10 14:00:55 by
Multi-thread apps for Multi-Core, How to thread?, Design
Detect Stalls Due to Exceeding Write-Combining Store Buffers on Hyper-Threading Technology-Enabled Systems [Knowledgebase]
Challenge Determine whether performance degradation (or lower-than-expected performance benefit) from Hyper-Threading Technology is due to exceeding the write-combining buffer capacity. A write-c ...

Posted: 2009-03-02 14:09:00 by
Multi-thread apps for Multi-Core, How to thread?, Performance analysis
Isolate Application Performance Issues on Hyper-Threading Technology-Enabled Systems [Knowledgebase]
Challenge Identify the source of performance degradations or low performance gains of applications running on systems that support Hyper-Threading Technology. Once applications have been tuned fo ...

Posted: 2009-01-27 10:22:11 by
Multi-thread apps for Multi-Core, How to thread?, Performance analysis
Memory Conflicts in Functional-Decomposition Problems [Knowledgebase]
Challenge Identify memory conflicts in a functional-decomposition problem to identify data-restructuring requirements. This procedure is part of the design phase for threaded applications that is ...

Posted: 2009-03-09 11:07:22 by
Multi-thread apps for Multi-Core, How to thread?, Performance analysis
Processor Time Counter to Evaluate Threading Methodology [Knowledgebase]
Challenge Evaluate the Processor Time counter of the performance object Thread to gauge the correctness of threading methodology. This indicator may help to point out where processor resources ar ...

Posted: 2009-03-10 10:53:12 by
Multi-thread apps for Multi-Core, How to thread?, Performance analysis
Use Instructions Retired Events to Evaluate Threading Methodology [Knowledgebase]
Challenge Evaluate instructions-retired data in conjunction with performance data to examine the correctness of threading methodology. The Instructions Retired processor event in the VTune™ Per ...

Posted: 2009-03-11 17:08:04 by
Multi-thread apps for Multi-Core, How to thread?, Performance analysis
Express Data Parallelism (with OpenMP* and Intel® Compilers) without large scale modifications to serial code [Knowledgebase]
Challenge Express data parallelism in a non-invasive manner and produce threaded executables without large-scale modifications to the serial code. Intel® Compilers can automatically parallelize ...

Posted: 2009-03-02 16:03:43 by
Programming, Multi-thread apps for Multi-Core, How to thread?
Manage Complexity when Threading a .NET Web Service Client [Knowledgebase]
Challenge Minimize the complexity inherent in multithreading a .NET* Web Service client. The number of ways in which different parts of a program can interact grows exponentially when we move fro ...

Posted: 2008-12-02 08:13:14 by
Programming, Multi-thread apps for Multi-Core, How to thread?
Managed Runtime Threading - Best Practices [Knowledgebase]
This series is designed for current .NET developers who have an interest in threading but have not had extensive experience in threading nor how threading enables improved performance on multi-core s ...

Posted: 2009-03-06 09:22:31 by
Programming, Multi-thread apps for Multi-Core, How to thread?
Number of Logical Processors per Physical Processor [Knowledgebase]
Challenge Identify the number of Hyper-Threading Technology enabled logical processors supported by a physical processor. To maximize performance from Hyper-Threading Technology, applications may ...

Posted: 2009-03-09 14:12:26 by
Programming, Multi-thread apps for Multi-Core, How to thread?
Test DLLs for Thread Safety [Knowledgebase]
Challenge Evaluate third-party DLLs for thread safety. While DLLs provided by third parties may provide useful functionality, they sometimes generate memory-conflict errors when implemented in th ...

Posted: 2009-03-11 11:44:15 by
Programming, Multi-thread apps for Multi-Core, How to thread?
Transfer Control among Threads in a .NET Web Service Client [Knowledgebase]
Challenge Pass messages between threads in a message-based idiom in a .NET-based Web service client. As discussed in a separate item, Manage Complexity when Threading a .NET Web Service Client, c ...

Posted: 2009-03-11 12:16:45 by
Programming, Multi-thread apps for Multi-Core, How to thread?
Avoid Excessive Synchronization [Knowledgebase]
Challenge Identify and eliminate excessive synchronization in a threaded application. The overhead associated with excessive synchronization can be a significant detriment to the scaling performa ...

Posted: 2009-03-02 08:50:20 by
synchronization, Multi-thread apps for Multi-Core, How to thread?
Perform Synchronization Using Thread Locking [Knowledgebase]
Challenge Perform synchronization when more than one atomic operation is required. In most implementations, a simple atomic operation is not sufficient to enforce synchronization and therefore to ...

Posted: 2009-03-09 17:02:51 by
synchronization, Multi-thread apps for Multi-Core, How to thread?
Synchronization (Avoiding Race Conditions) without Blocking Threads [Knowledgebase]
Challenge Perform explicit synchronization to avoid data loss due to race conditions, without the added complexity of blocking threads. Concurrent programs are subject to race conditions (e.g., m ...

Posted: 2009-03-11 10:56:40 by
synchronization, Multi-thread apps for Multi-Core, How to thread?
Use Win32 Functions to Manage Event Objects [Knowledgebase]
Challenge Apply Win32 Functions to create and use event objects.The event object is a kernel object that stays nonsignaled until a condition is met. The programmer has the control over setting th ...

Posted: 2008-12-09 10:09:01 by
synchronization, Multi-thread apps for Multi-Core, How to thread?
Win32 Functions to Create, Suspend, and Terminate Threads [Knowledgebase]
Challenge Apply procedures provided by the Microsoft Win32 API to create, suspend, resume, and terminate threads. Context switching in a multithreaded application is cheaper than context switchin ...

Posted: 2008-12-09 10:50:30 by
synchronization, Multi-thread apps for Multi-Core, How to thread?
Win32 Functions to Manage Semaphores [Knowledgebase]
Challenge Apply Win32 Functions to create a semaphore, to wait for objects, and to release a semaphore. A semaphore is a kernel object that has a numerical count associated with it to manage a fi ...

Posted: 2008-12-09 11:03:45 by
synchronization, Multi-thread apps for Multi-Core, How to thread?
Avoid Resource Contention on Hyper-Threading Technology-Enabled Systems [Knowledgebase]
Challenge Prevent multiple logical processors on systems that support Hyper-Threading Technology from contending for cache resources. A Hyper-Threading Technology-enabled processor does not incr ...

Posted: 2009-08-19 15:38:29 by
Hyper-Threading, Multi-thread apps for Multi-Core
Cache Block Size on Processors that Support Hyper-Threading Technology [Knowledgebase]
Challenge Determine the optimum size for cache blocks in applications for a Hyper-Threading Technology-enabled system that supports two logical processors. For optimal performance, cache blocks s ...

Posted: 2009-03-02 10:25:07 by
Hyper-Threading, Multi-thread apps for Multi-Core
Cache Block Size on Processors without Hyper-Threading Technology [Knowledgebase]
Challenge Determine the optimum size for cache blocks in applications for systems that do not support Hyper-Threading Technology. For optimal performance, cache blocks should be sized such that e ...

Posted: 2008-11-21 12:52:03 by
Hyper-Threading, Multi-thread apps for Multi-Core
Cache Effects on Applications Running on Hyper-Threading Technology-Enabled Processors [Knowledgebase]
Challenge Gauge whether the negative impact of sharing data-cache resources will outweigh the performance increases for a specific application. Depending on the application characteristics, Hyper ...

Posted: 2009-03-02 10:30:57 by
Hyper-Threading, Multi-thread apps for Multi-Core
Effectiveness of Hyper-Threading Technology With an Application [Knowledgebase]
Challenge Ascertain whether the level of performance improvement from Hyper-Threading Technology for a specific application is acceptable. There is a misconception that equal performance on two w ...

Posted: 2009-03-02 15:30:39 by
Hyper-Threading, Multi-thread apps for Multi-Core
Multi-core Introduction [Knowledgebase]
Why is Multi-core Important? Some people say that extending Moore’s Law into the future isn’t necessary, and that today’s computer hardware and software is good enough. ...

Posted: 2009-08-21 15:18:01 by
Hyper-Threading, Multi-thread apps for Multi-Core
Performance Issues on Hyper-Threading Technology-Enabled Systems [Knowledgebase]
Challenge Create a summary of performance issues related to Hyper-Threading Technology for an application. This information is a starting point to get an idea as to what optimizations and source ...

Posted: 2009-03-09 16:27:43 by
Hyper-Threading, Multi-thread apps for Multi-Core
Processing Loads on Systems with Hyper-Threading Technology [Knowledgebase]
Challenge Limit the performance impact from differential processing loads among threads in a data-decomposition threading problem on systems with Hyper-Threading Technology. Data-decomposition pr ...

Posted: 2009-03-09 17:47:01 by
Hyper-Threading, Multi-thread apps for Multi-Core
Resolve 64K Alias Conflicts on Hyper-Threading Technology-Enabled Systems [Knowledgebase]
Challenge Avoid performance degradation due to 64K alias conflicts for cache resources. Intel® processors with Hyper-Threading Technology share the first-level data cache among logical processor ...

Posted: 2009-03-10 11:57:02 by
Hyper-Threading, Multi-thread apps for Multi-Core
Desktop search [Knowledgebase]
Download this app from here.  Desktop Search Sample ApplicationThis sample application will help you get hands on experience with multi-threading using Intel’s dual core processors.    Environm ...

Posted: 2008-11-24 14:28:32 by
Multi-thread apps for Multi-Core, Reference threaded apps
XNA* game [Knowledgebase]
Download this app from here. XNA Game Sample Application This sample application will help you get hands on experience with multi-threading using Intel’s dual core processors.   Enviro ...

Posted: 2009-10-15 10:43:08 by
Multi-thread apps for Multi-Core, Reference threaded apps
AE provided [Knowledgebase]
These samples are from Intel® application engineers. OpenMP and Win32 Threads Usage Example by Stanislav BratanovThe code example computes a trigonometric formula for arrays of input coefficie ...

Posted: 2009-03-01 21:39:08 by
Multi-thread apps for Multi-Core, Threaded Code examples
From online books [Knowledgebase]
  Evaluation Only. Created with Aspose.Words. Copyright 2003-2006 Aspose Pty Ltd. Technical Books for Multi-Core Software Developers Multi-thread apps for Multi-core; Threaded Code Examples These ...

Posted: 2008-11-24 16:00:03 by
Multi-thread apps for Multi-Core, Threaded Code examples
Open source samples [Knowledgebase]
Technion Software Systems Lab Projects The students in the Technion university took some open source projects, optimized them using a variety of techniques including threading and microarchitectu ...

Posted: 2009-03-09 14:19:20 by
Multi-thread apps for Multi-Core, Threaded Code examples
Parallel for [Knowledgebase]
Parallel seismic simulation that demonstrates use of parallel_for.   SeismicSimulation.h============================================================================== Copyright 2005-2006 Intel Corp ...

Posted: 2009-03-09 15:19:25 by
Threading Building Blocks, Multi-thread apps for Multi-Core, Threaded Code examples
Parallel for -Tachyon [Knowledgebase]
Parallel raytracer / renderer that demonstrates the use of parallel_for. This example includes software developed by John E. Stone. See below for copyright information. Tachyon Ray Tracing System This ...

Posted: 2009-03-09 15:50:19 by
Threading Building Blocks, Multi-thread apps for Multi-Core, Threaded Code examples
Parallel reduce [Knowledgebase]
Parallel version of the Sieve of Eratosthenes Copyright 2005-2006 Intel Corporation. All Rights Reserved. Example program that computes number of prime numbers up to n, where n is a command line ...

Posted: 2009-03-11 16:45:28 by
Threading Building Blocks, Multi-thread apps for Multi-Core, Threaded Code examples
Parallel while [Knowledgebase]
Introduction Example that uses parallel_while to do parallel preorder traversal of a sparse graph. Each vertex in the graph is called a "cell". Each cell has a value. The value is a matrix. Some ...

Posted: 2009-03-11 15:37:43 by
Threading Building Blocks, Multi-thread apps for Multi-Core, Threaded Code examples
Pipeline [Knowledgebase]
Text filter that demonstrates class pipeline text_filter.cpp Copyright 2005-2006 Intel Corporation. All Rights Reserved.   Example program that reads a file of text and changes the first l ...

Posted: 2009-03-11 14:58:37 by
Threading Building Blocks, Multi-thread apps for Multi-Core, Threaded Code examples
Substring finder [Knowledgebase]
Introduction A simple example that uses the parallel_for template in a substring matching program. For each position in a string, the program displays the length of the largest matching substring ...

Posted: 2009-03-11 14:48:02 by
Threading Building Blocks, Multi-thread apps for Multi-Core, Threaded Code examples
Task - tree sum [Knowledgebase]
Introduction This is a simple example that sums values in a tree. The example exhibits some speedup, but not a lot, because it quickly saturates the system bus on a multiprocessor. For good speed ...

Posted: 2009-03-11 11:31:39 by
Threading Building Blocks, Multi-thread apps for Multi-Core, Threaded Code examples
NearestNeighbors [Knowledgebase]
Problem Statement You will be given two sets of points in N-dimensional space: A and B. Your task is: for every point b in set B, find the point a in set A that is closest to b (using E ...

Posted: 2009-03-01 20:27:55 by
Multi-thread apps for Multi-Core, Threaded Code examples, TopCoder* contests
StringSearch [Knowledgebase]
Problem Statement      The goal of this problem is to search a large string, S, (up to 2 million characters) for smaller strings, u, (up to 100K each). Given a string t=u[n], you w ...

Posted: 2008-12-05 16:37:14 by
Multi-thread apps for Multi-Core, Threaded Code examples, TopCoder* contests
Threading case studies [Knowledgebase]
Introduction This section contains a number of projects where a single-threaded application has been taken, converted to use multi-threading, and the performance improvements measured and docume ...

Posted: 2009-03-01 20:04:39 by
Multi-thread apps for Multi-Core, Threaded Code examples, TopCoder* contests
Development of Threaded Applications [Knowledgebase]
Challenge Use Intel® threading tools to optimize the efficiency of application development. In order to use the tools for maximum impact, it is necessary for developers to understand the roles o ...

Posted: 2009-03-02 15:11:13 by
Threading Tools, Multi-thread apps for Multi-Core, Threading case studies
Two Brains Are Better Than One [Knowledgebase]
How to thread game AI Artificial intelligence (AI) drives gameplay—whether you’re talking about a complex system of AI or a simple scripting engine. To really maximize your AI’s potential, it n ...

Posted: 2009-06-20 00:45:23 by Orion Granatir (Intel)
Multi-thread apps for Multi-Core, Artificial intelligence, How to thread?, Smoke, Design, multi-core, physics, visual computing
How Special Silicon Facilitates Parallel Arithmetic [Knowledgebase]
One of the most effective forms of parallelization is found deep inside Intel® x86 processors: the ability to execute parallel calculations with a single instruction. You can do this manually or let ...

Posted: 2009-06-18 18:31:49 by
simd, Multi-thread apps for Multi-Core, SSE, game development, physics, visual computing
Scaling Ambient Animations for Improved Game Experience [Knowledgebase]
By Mike Yi and Orion GranatirGame developers want to deliver the best experience possible for each player, but they also want a game that is fair to all players. A higher-performing machine for one pl ...

Posted: 2009-10-21 13:48:53 by Mike Yi (Intel), Orion Granatir (Intel)
Multi-thread apps for Multi-Core, Smoke, Smoke Demo, visual computing, horsepower, game framework