Welcome, Guest. Please login or register. Did you miss your activation email?

Author Topic: Open discussion : parallel work libraries  (Read 1455 times)

0 Members and 1 Guest are viewing this topic.

Ceylo

  • Hero Member
  • *****
  • Posts: 2325
    • View Profile
    • http://sfemovie.yalir.org/
    • Email
Open discussion : parallel work libraries
« on: August 13, 2011, 12:38:03 pm »
Hello,

I'd like to start an open discussion about multithreading, parallelism and the libraries available today to achieve that work. This is not much related to SFML except its ease of use and probably some sfml-system classes that may be used in such library.

I'm creating this topic because I'm wondering whether an easy-to-use library to achieve this concept already exists, or whether it would have to be written, and how hard it would be.

The purposes of the library I'm looking for:
- accessible to most developers, not only to engineers or highly graduated persons
- available to C++ developers
- portable (start with Windows, Mac OS X and Linux, then extend to mobile devices)
- lightweight
- easy-to-use (related to accessibility)


The most important features I'm looking for:
- task parallelism
- task cancellation (in a soft and abrupt manner)
- task dependencies


The existing related libraries:
- Thread Building Blocks : really too complicated to use, and rather restrictive licence (GPL / commercial), it's the only library that I've found and that includes all of the features I'm looking for
- Grand Central Dispatch : currently not portable, not too complicated, no task cancellation (once started), no task dependencies, no automatic dependency support (only manual)
- PFunc : Unix only, still a bit complicated, no task dependency, no task cancellation
- Microsoft Task Parallel Library : MS platform and .NET only, no hard cancellation, restricted and manual task dependencies (one task cannot wake up more than one other task)
- OpenCL : not currently available on all platforms, not much more that an GPU parallel task library (not as high level as I would wish)
- OpenMP : widely supported except free versions of Visual Studio, no task cancellation nor automatic task dependencies


So what are your thoughts about all of these? Why do you think there are so few libraries corresponding to these needs? Or did I miss some great library? And do you think it would mean too much work to achieve one in a one-year basis?

The final purpose of this library, even if it's rather a dream, would be programming in a parallelized way as easily as you usually do with sequential programming.

Ceylo
Want to play movies in your SFML application? Check out sfeMovie!

Ceylo

  • Hero Member
  • *****
  • Posts: 2325
    • View Profile
    • http://sfemovie.yalir.org/
    • Email
Open discussion : parallel work libraries
« Reply #1 on: August 15, 2011, 10:51:10 am »
For those interested, the question has been answered there : http://programmers.stackexchange.com/questions/101032/parallel-programming-library-some-features

I may still do some wrapper library but the main point is that TBB is not as much complicated to use as I thought.
Want to play movies in your SFML application? Check out sfeMovie!

 

anything