Results 1 to 8 of 8

Thread: No parallelism with cilk++ on AMD 64 bit

  1. #1
    Join Date
    Apr 2010
    Posts
    214

    No parallelism with cilk++ on AMD 64 bit

    In the recent time I had build the programs written in cilk++ on AMD, 64 bit Linux. The program accumulates well, I utilize –m32 to get the 32 bit version or description. I had even utilize the gcc-4.2, and g++-4.2. Additional than I do not get several parallelism, for illustration -cilk_set_worker_count switch has no consequence; it seems that cilk++ compiler is not capable to pick up the numerial of cores obtainable. Although I compile the similar programs on Intel 32 bit Linux using similar gcc-4.2 and g++-4.2 version or description. My query is it probable for Cilk++ compiler to be unaware of the number of cores and if yes when does it occur.

  2. #2
    Join Date
    May 2008
    Posts
    835

    Re: No parallelism with cilk++ on AMD 64 bit

    You determine to solve these tribulations, as I had the similar problem and I had solve this. I was by means of a multi-threaded library inside my submission parallelized by means of cilk++. On one occasion I set GOTO_NUM_THREAD=1, I got the scalability I had tried by means of. After that you have to GOTO_NUM_THREAD=2 and the program did not scale. Why cilk++ does not operate by means of Gotoblas which is a pthreaded library. Or perhaps, I be supposed to try on apparatus by means ofadditional cores (>8 cores, which I utilize at present).

  3. #3
    Join Date
    Apr 2008
    Posts
    593

    Re: No parallelism with cilk++ on AMD 64 bit

    If you are using Cilk within a program with the intention of previously multithreaded raises the query of how the threads are allocated. When you generate a Cilk context and then you have to enter Cilk, the Clik runtime determine to generate a thread per core to do it’s run in. If your submission in addition utilize some additional threading package and then you have to generate multiple Cilk contexts and calls into Cilk, the Cilk runtime determine to generate a thread per core for every of the Cilk contexts in every of the threads. They be able to lead the too oversubscription and your submission might spend too much time context switching. On the Cilk team they refer to this as a combinatorial explosion of threads.

  4. #4
    Join Date
    Oct 2005
    Posts
    1,217

    Re: No parallelism with cilk++ on AMD 64 bit

    The Cilk V2 runtime keep away from this by doing away by means of the Cilk Context from Cilk V1.1. There is at present the impression of "user" threads and "worker" threads. As almost immediately as the Cilk runtime starts up, it generates a worker thread per core, immediately similar to in the preceding version or description of Cilk. A user thread is a number of additional thread that calls a Cilk function. As part of that function's prolog, it determine to be "bound" into the Cilk surroundings, initializing the Cilk runtime if it has not occurred yet, and the worker threads determine to start trying to steal work from it.

  5. #5
    Join Date
    Nov 2005
    Posts
    1,187

    Re: No parallelism with cilk++ on AMD 64 bit

    Unlike Cilk V1, several syncs in that function are guaranteed to be continued on the innovative user thread. When that function exits, the thread is mechanically "unbound" and the worker threads are balanced when there are no additional bound user threads. User threads are in addition protected from stealing, so they are not delayed doing work for some additional thread.

  6. #6
    Join Date
    Mar 2010
    Posts
    732

    Re: No parallelism with cilk++ on AMD 64 bit

    The guarantee that you determine to continue on the innovative thread in the outermost Cilk function fixes thread local storage tribulations approximately calls into Cilk. Additional than there are tranquil no guarantees on what thread you are working with on subsequent to crossing several strand boundary (a cilk_spawn, cilk_sync or cilk_for) on several inner functions. So utilize of thread local storage is tranquil discouraged.

  7. #7
    Join Date
    May 2008
    Posts
    1,812

    Re: No parallelism with cilk++ on AMD 64 bit

    Well, I tried to build my submission by means of em64t libraries as an alternative of ia32_itanium (do not be familiar with if that’s the right method for amd64) additional than I get linker errors. The IPP functions I utilize not be able to be originate. I followed the steps illustrated in the "getting started guide" (IPP41em64tippstart.htm). The tutorial (IPP41em64t rainingstart.htm) is the similar as for ia32_itanium and consequently of no avail. (There is neither ipps20.lib nor ippcore.lib in IPP41em64stublib.

  8. #8
    Join Date
    May 2008
    Posts
    3,516

    Re: No parallelism with cilk++ on AMD 64 bit

    You be able to get message regarding "No DLL was originate." if you have comprised no IPP DLL obtainable in your PATH. I am glad you locate solution. It is safe to utilize 32-bit IPP libraries on 64-bit x86 Intel platforms. In case of AMD there is restriction you not be able to utilize T7 libraries for the reason that of Prescott innovative instructions is not sustained or maintained on AMD architecture. The comparable limitation is for 64-bit x86 IPP libraries. It is safe to utilize MX libraries on AMD additional than not M7 you be able to get illegal instruction exception in those IPP functions which uses Prescott innovative instructions.

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Page generated in 1,713,997,922.38380 seconds with 15 queries