# The Knight's Tour: A Concurrent Solution

Several years ago, an ex-colleague of the author returned from a job interview with an interesting story. He was given the option to choose from a short list of problems to solve in a given time period. One of them was the classic “Knight’s Tour” problem from the game of chess. Since then, the author often thought about how he might respond to such a job interview question, and, how easily his solution might parallelize.

# Parallel Algorithm to String Matching Problem

The included code and white paper provides a parallel solution for the DNA string matching problem, as described in the included problem description text file. The included write-up gives an overview of Cilk++ and some of the tools available for Cilk programming. The Rabin-Karp hashing method and a simple search algorithm to compare the query string with a successive database substrings is presented and analyzed. After some serial optimizations are described, the write-up describes how the algorithm is parallelized using Cilk++. The code was intended for Linux OS platforms.

# Parallel Solution to Cat-and-Mouse strategy game problem (akki)

The included code and white paper provides a parallel solution for enumerating the total number of possible wins, losses, and draws for a two-person strategy game. A Cat and Mouse move on a directed graph; the Cat attempts to catch the Mouse, while the Mouse attempts to occupy a goal node within the maximum number of moves allowed. Even though the problem deals with graphs, the solution given is based on dynamic programming.

# Parallel Solution to Cat-and-Mouse strategy game problem (Vyukov)

The included code and white paper provides a parallel solution for enumerating the total number of possible wins, losses, and draws for a two-person strategy game. A Cat and Mouse move on a directed graph; the Cat attempts to catch the Mouse, while the Mouse attempts to occupy a goal node within the maximum number of moves allowed. Even though the problem deals with graphs, the solution given is based on dynamic programming. A detailed description of how to apply dynamic programming to this problem is included in the write-up. Parallelism is implemented with Pthreads.

# Parallel Programming with Intel Parallel Studio Workshop

This course is the latest parallel programming workshop for academic community. The course materials and labs are developed with Intel Parallel Studio. This course covers the following topics:

# Efficient Application Threading with Intel Tools

This introductory presentation provides a clear motivation for Intel’s move to multi-core, as well as an overview of basic concepts in parallel programming such as domain and functional decomposition, pipelining, race conditions, deadlock, mutual exclusion, as well as general models for parallel programming. This tutorial is based on Intel Parallel Studio

# Programming tools for multiprocessor and multicore computing systems(Intel Textbook)

This textbook is titled "Programming tools for multiprocessor and multi-core computing systems – St. Petersburg, 2009".In this edition, the basics of programming techniques for multiprocessor and multi-core computers are given. OpenMP and Message Passing Interfaces are considered. A short review of Fortran 90 is also included.

# Intel Cluster Tool and MPI Training

This one-day course covers the following topics: Intel Cluster Toolkits Cluster Infrastructure MPI Overview Lab: MPI Programming MPI Collective Communication Lab:MPI Benchmarking Intel Trace Analyzer and Collector Lab: Intel Trace Analyzer and Collector

# Parallelism Tools: Checking for Thread Performance with Intel ® Thread Profiler

Parallelism tools - Intel® Thread Profiler: In this module, participants will learn how to use the Intel® Thread Profiler to detect various synchronization related performance bottlenecks. Labs are provided to help cement the concepts and could be used as student projects or homework exercises.

# Parallelism Tools: Checking for Thread Correctness with the Intel® Thread Checker

In this 1.5 hour module, participants will learn how to use the Intel® Thread Checker to detect data races and other issues that may arise from threading on a shared memory system. Labs will be provided to help cements the concepts and could be used as student projects or homework exercises