Difference between revisions of "Multi-threaded Programming"

From Gridkaschool
(Tutorial Material)
 
(7 intermediate revisions by 2 users not shown)
Line 1: Line 1:
===[[Internals:Multithreaded|Technical specification/requirements]]===
+
===[[Multithreaded|Technical specification/requirements]]===
   
 
= Introduction =
 
= Introduction =
Line 19: Line 19:
 
Visual C++, GCC and Intel compilers.
 
Visual C++, GCC and Intel compilers.
   
 
= Hosts to use =
 
 
UID Host name IP address
 
065 gks-212.scc.kit.edu 141.52.174.212
 
066 gks-213.scc.kit.edu 141.52.174.213
 
073 gks-214.scc.kit.edu 141.52.174.214
 
074 gks-215.scc.kit.edu 141.52.174.215
 
084 gks-216.scc.kit.edu 141.52.174.216
 
085 gks-217.scc.kit.edu 141.52.174.217
 
090 gks-218.scc.kit.edu 141.52.174.218
 
091 gks-219.scc.kit.edu 141.52.174.219
 
094 gks-220.scc.kit.edu 141.52.174.220
 
102 gks-221.scc.kit.edu 141.52.174.221
 
109 gks-222.scc.kit.edu 141.52.174.222
 
022 gks-223.scc.kit.edu 141.52.174.223
 
117 gks-224.scc.kit.edu 141.52.174.224
 
118 gks-225.scc.kit.edu 141.52.174.225
 
127 gks-226.scc.kit.edu 141.52.174.226
 
128 gks-227.scc.kit.edu 141.52.174.227
 
132 gks-228.scc.kit.edu 141.52.174.228
 
134 gks-229.scc.kit.edu 141.52.174.229
 
137 gks-230.scc.kit.edu 141.52.174.230
 
138 gks-231.scc.kit.edu 141.52.174.231
 
139 gks-232.scc.kit.edu 141.52.174.232
 
140 gks-233.scc.kit.edu 141.52.174.233
 
   
 
= Tutorial Material =
 
= Tutorial Material =
Line 54: Line 28:
 
<p>http://hauth.web.cern.ch/hauth/mcore_introduction.pdf</p></li>
 
<p>http://hauth.web.cern.ch/hauth/mcore_introduction.pdf</p></li>
 
<li><p>Source code</p>
 
<li><p>Source code</p>
<p>http://hauth.web.cern.ch/hauth/GridKa_Multicore.tar.gz</p>
+
<p>http://hauth.web.cern.ch/hauth/GridKa_Multicore_2013.tar.gz</p>
 
Use:
 
Use:
wget http://hauth.web.cern.ch/hauth/GridKa_Multicore.tar.gz
+
wget http://hauth.web.cern.ch/hauth/GridKa_Multicore_2013.tar.gz
tar xzf GridKa_Multicore.tar.gz
+
tar xzf GridKa_Multicore_2013.tar.gz
 
to download and extract the source code on your GridKa maschine.
 
to download and extract the source code on your GridKa maschine.
 
</li>
 
</li>
 
</ul>
 
</ul>
  +
  +
= Tips & Tricks =
  +
Connect to the workshop machine using
  +
ssh -p 24 <gks username>@<full machine address>
  +
  +
If you want to view the picture output of project3, run this command in the project3_taylor folder ( best in a second ssh connection )
  +
python -m SimpleHTTPServer 8080
  +
  +
Now you can open this url in your regular browser (replace with your workshop machine):
  +
http://gks-219.scc.kit.edu:8080/
   
 
= Reference Material =
 
= Reference Material =
   
 
<ul>
 
<ul>
  +
<li><p>Intel Threading Building Blocks - Online Reference</p>
  +
<p>http://software.intel.com/sites/products/documentation/doclib/tbb_sa/help/index.htm#reference/reference.htm</p></li>
 
<li><p>Intel Threading Building Blocks - Tutorial</p>
 
<li><p>Intel Threading Building Blocks - Tutorial</p>
  +
<p>http://software.intel.com/sites/products/documentation/doclib/tbb_sa/help/index.htm#tbb_userguide/title.htm</p></li>
<p>http://threadingbuildingblocks.org/uploads/81/91/Latest%20Open%20Source%20Documentation/Tutorial.pdf</p></li>
 
<li><p>Intel Threading Building Blocks - Reference</p>
 
<p>http://threadingbuildingblocks.org/uploads/81/91/Latest%20Open%20Source%20Documentation/Reference.pdf</p></li>
 
 
<li><p>Intel Threading Building Blocks - Design Patterns</p>
 
<li><p>Intel Threading Building Blocks - Design Patterns</p>
<p>http://threadingbuildingblocks.org/uploads/81/91/Latest%20Open%20Source%20Documentation/Design_Patterns.pdf</p></li>
+
<p>http://software.intel.com/sites/products/documentation/doclib/tbb_sa/help/tbb_userguide/Design_Patterns/Design_Patterns.htm</p></li>
  +
<li><p>Intel Threading Building Blocks - General Documentation</p>
  +
<p>http://software.intel.com/sites/products/documentation/doclib/tbb_sa/help/index.htm</p></li>
 
</ul>
 
</ul>

Latest revision as of 16:53, 19 August 2013

Technical specification/requirements

Introduction

Intel Threading Building Blocks (TBB) is an open-source C++ library to support the development of mulit-threaded applications which can exploit the available processing cores in modern CPUs. Therefore, various contsructs to support parallelism in applications are provided by TBB. Low-level constructs are available to partition loops to run them distributed over many CPU cores. High-level constructs like a task scheduler and a graph-based execution model allow to express dependencies and relations between computing tasks and TBB can distribute these items among the available cores.

Furthermore, C++ classes are included that guarantee a thread-safe access to containers like lists and maps. Also explicit locking constructs like mutexes are available.

The TBB library supports the Windows, Mac OS and Linux operating systems and the Visual C++, GCC and Intel compilers.


Tutorial Material

Tips & Tricks

Connect to the workshop machine using

 ssh -p 24 <gks username>@<full machine address>

If you want to view the picture output of project3, run this command in the project3_taylor folder ( best in a second ssh connection )

 python -m SimpleHTTPServer 8080

Now you can open this url in your regular browser (replace with your workshop machine):

 http://gks-219.scc.kit.edu:8080/

Reference Material