Intel® Moderncode for Parallel Architectures
Support for developing parallel programming applications on Intel® Architecture.

multicore simulation software

shoog_a_
Beginner
1,393 Views

Hi

I have a scheduling code and I want to try it on a different number of core (1,2,3,5,10) to see what is the effect of increasing the number of cores on the program.
So, I would like to ask:

Is there any tool or simulator software helping me to do this?

note: I have Intel(R) core(TM) i7 , windows 8


Thank you
 

 

0 Kudos
10 Replies
jimdempseyatthecove
Honored Contributor III
1,393 Views

Your Core i7 likely has 4 cores, and if it has HT, then support for 8 hardware threads.

You could test your scaling from 1 to 4 cores (4 threads, 1 per core) as well as 8 threads (4 cores, 2 per core). Beyond that you will need a bigger system.

Look at using OpenMP for threading. It is easy to get started, however, keep in mind that you do have some issues to resolve that you do not have in a single threaded program. Your problem statement was "I have a scheduling code..". These types of problems typically contain a resource that is allocated dependent upon requirements and availability. An example might be seats in a classroom or on an airplane. At the point of allocation (acquisition) of a resource, the single threaded program can simply take it, because the availability of the resource will not change between the time you (your thread code) observes an availability, and the time you actually remove the resource. While this may be as close as two statements in your program, there is an interval between the two statements where a different thread can see the availability of the last resource. i.e. both take the last resource. There is a similar issue when the two thread decrement the count of available resources. What you need to learn is how to safely modify shared resources.

Good luck on your first venture into parallel programming.

Jim Dempsey

0 Kudos
Bernard
Valued Contributor I
1,393 Views

@Jim

Do you know any good resources or code samples for scientific multithreaded programming on Windows OS(Win API created threads)?

Thanks in advance.

0 Kudos
jimdempseyatthecove
Honored Contributor III
1,393 Views

Grr... this *&%# Windows keyboard layout on my Ultrabook killed a nice response I had written moments ago. I think an accidental bump of combination of keys, possibly Ctrl, Fn, "Windows", maybe Alt, possibly in combination with the touchpad, causes the IE session close. Like a hot key for Alt-F4.

>>Do you know any good resources or code samples for scientific multithreaded programming on Windows OS(Win API created threads)?

Let's see if I can red the post.

I am not a book learned type of person. More of a hands on type of person. My list of books is quite skimpy, and others here may have a better  choice.

Start with: http://www.amazon.com/Art-Concurrency-Monkeys-Parallel-Applications/dp/0596521537/ref=sr_1_11?s=books&ie=UTF8&qid=1393523669&sr=1-11&keywords=breshears

You might also look at: Structured Parallel Programming - McCool, Robison, Reinders
Though this book is aligned for using Cilk Plus and TBB

If you have a good (high speed) internet connection, try downloading: http://parsec.cs.princeton.edu/

This is the PARSEC benchmark suit of programs. Last I downloaded it was over 3GB of stuff. Much of it using pthreads. You can use on of several pthread libraries on Widows.

Jim Dempsey

0 Kudos
Bernard
Valued Contributor I
1,393 Views

@Jim

Thank you.

0 Kudos
Vladimir_P_1234567890
1,393 Views

jimdempseyatthecove wrote:

You might also look at: Structured Parallel Programming - McCool, Robison, Reinders

Though this book is aligned for using Cilk Plus and TBB

I'd suggest to go to their site http://parallelbook.com/

It contains code samples from the book and their great tutorial from SuperComputing 2013 (http://parallelbook.com/sites/parallelbook.com/files/SC13_20131117_Intel_McCool_Robison_Reinders_Hebenstreit.pdf).

and book itself is pretty cool.:) in addition to Cilk Plus and TBB there is OpenMP.

--Vladimir

0 Kudos
Bernard
Valued Contributor I
1,393 Views

>>>>Much of it using pthreads. You can use on of several pthread libraries on Widows.>>>

My intention was to port some of the multithreaded programs written with pthreads to  use Win API threads functions.

Btw, Win pthreads libraries probably are built on top of Win API thread and process functions.

0 Kudos
shoog_a_
Beginner
1,393 Views

thank you for your response

 what about if I have normal program and want to see the effect of core in it ?

I should try it in (1,2,3,4,5,10) because I want to re-do specific experiment of paper

IS there any software simulator or virtual  for number of core?

or I should use thread and change my code for each core? what is the best way to use thread?

 

0 Kudos
Vladimir_P_1234567890
1,393 Views

iliyapolak wrote:

>>>>Much of it using pthreads. You can use on of several pthread libraries on Widows.>>>

My intention was to port some of the multithreaded programs written with pthreads to  use Win API threads functions.

Btw, Win pthreads libraries probably are built on top of Win API thread and process functions.

I suggest to look at Tachyon tbb example. there is winthread wrapper for pthreads. <install>\examples\parallel_for\tachyon\src\pthread.[cpp|h] files.

0 Kudos
Vladimir_P_1234567890
1,393 Views

shoog a. wrote:

IS there any software simulator or virtual  for number of core?

or I should use thread and change my code for each core? what is the best way to use thread?

you can try to use Intel Advisor http://software.intel.com/sites/products/documentation/hpc/ics/icsxe2013/icsxe_tutorial/Windows_advisor_xe.htm

0 Kudos
Bernard
Valued Contributor I
1,393 Views

Thanks Vladimir.

0 Kudos
Reply