В коде программ нет мест, где нельзя допустить ошибку. Ошибка может быть в самом простом месте. Если алгоритмы, механизмы обмена данными и интерфейсы люди привыкли тестировать, то с безопасностью всё обстоит гораздо хуже. Часто она реализуется по остаточному принципу. Программист думает, вот сейчас пару строк напишу, и всё будет хорошо. И даже тестировать не надо. Код слишком прост, чтобы допустить в нем ошибку! А вот и нет. Раз занимаетесь безопасностью и пишите какой-то код для этого, то тестируйте его не менее тщательно!
C++
Intel® Debugger for Linux* (IDB)
Parallel algorithm to Solve the Graph Coloring Problem (Bradley Kuszmaul)
The included source code implements a variation of the Graph Coloring decision problem, as described in the included problem description text file. The algorithm implemented searches a “Zykov tree”, which computes the chromatic number of a graph by a recursive recurrence relation (as shown in the write-up). Each subexpression in the relation can be used to find a graph coloring of modified graphs. The concept of vertices that dominate other vertices in the graph helps drives the search through the recurrence relation. The parallelization was done with Cilk++.
Parallel algorithm to Solve the Graph Coloring Problem (Akshay Singh)
The included source code implements a variation of the Graph Coloring decision problem, as described in the included problem description text file. The application uses a simple brute force test of coloring the input graph with a given number of colors. If no such coloring is possible, the number of colors is incremented and the brute force search is executed again with the new number of possible colors. The actual attempts to assign colors to nodes are done in parallel through a task pool mechanism implemented with POSIX threads.
Parallel algorithm to solve Maximum Independent Set problem (Trouger, Zhejiang University)
The included source code finds a Maximum Independent Set (MIS) of a given graph, as described in the included problem description text file. The solution uses a modification to a max-clique algorithm found in a code library from University of Jilin, China. The algorithm uses a depth-first search component. This part of the algorithm is parallelized by assigning several recursive calls to the depth-first code on threads. The code is parallelized using Windows Threads.
Parallel Algorithm to Solve Maximum Independent Set Problem
The included source code finds a Maximum Independent Set (MIS) of a given graph, as described in the included problem description text file. The parallel solution uses Intel Threading Building Blocks (TBB) tasks to execute a recursive search algorithm. Task continuation and recycling are utilized to bypass the task scheduler. The code was intended for Linux OS and includes a makefile to build the applications.
Parallel algorithm to solve a Hamiltonian Path problem variation (Travelling Baseball Fan) (Nicola Beschin)
The included source code implements a variation of the Hamiltonian Path problem, called the Travelling Baseball Fan Problem, as described in the included problem description text file. The serial algorithm is a recursive search of all potential paths. The parallelization was done with Intel Threading Building Blocks (TBB). Continuation tasks are set up for each tour day and parallel searches are executed within each new start day for the recursive algorithm to a given task generation depth. If there is no schedule for a day, the task for the next day is begun.
Parallel algorithm to solve a Hamiltonian Path problem variation (Travelling Baseball Fan) (Bradley Kuszmaul)
The included source code implements a variation of the Hamiltonian Path problem, called the Travelling Baseball Fan 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 serial algorithm is a recursive search of all paths. To this basic algorithm, two heuristics have been added to reduce search time: remaining-degree and remaining-city.
Manycore Testing Lab - Getting Started Guide
This is the Getting Started Guide for the Intel(R) Manycore Testing Lab
Introduction to Programming Languages (ASU)
Textbook for introduction to programming languages with a hands-on approach. It teaches C, C++, Scheme, and Prolog in detail and with exercises, programming environments, and lab assignments.
