PDA

View Full Version : Grand Central




Clindt
Jun 11, 2008, 05:38 AM
I am very interested in any info regarding the new Grand Central technology, especially how it can be used as an application programmer.



yeroen
Jun 11, 2008, 07:38 AM
We all are, that and whatever GPGPU API they can conceive.

If you're a C++ programmer, you should, in the interim, check out Intel Threading Building Blocks (TBB) template library. It's open source, and taking a peek inside is quite instructive.

Clindt
Jun 11, 2008, 07:54 AM
Thanks. The following sites contain a lot I can be busy with until there is more information regarding the "Apple way" of doing it.

http://www.threadingbuildingblocks.org/
http://www.devx.com/go-parallel/Door/36013

robbieduncan
Jun 11, 2008, 07:59 AM
Even if we know we couldn't tell you anything: it's all under NDA.

gnasher729
Jun 11, 2008, 08:03 AM
I am very interested in any info regarding the new Grand Central technology, especially how it can be used as an application programmer.

So am I. But unless you've got a ticket for WWDC, there is no way to get that information legally.

MrRage
Jun 14, 2008, 09:37 PM
I'm sure if you start looking at the docs online you will start to see information about it pop up - but until Apple releases it don't expect to get any information about it.

Cromulent
Jun 15, 2008, 04:06 AM
This is a guess but I would assume that Grand Central is just a higher level wrapper for OpenMP, especially seeing as Apple have been supporting a specific OpenMP distribution for a while now (the one included with Leopard).

elppa
Jun 15, 2008, 09:01 AM
Posted this on another thread (http://forums.macrumors.com/showthread.php?t=498130), but anyway:

Grand Central Dispatch manages processes in a manner analogous to modern networking. Old telephone equipment used to use circuit switching to transmit information over networks; a dedicated circuit path is easy to set up but it is also expensive and potentially fragile. Modern networking uses packet switching, which breaks up data, phone conversations, or video streams into packets and routes each of them independently in a far more efficient way that is also resilient to network outages. Packets get routed around the problems.

Snow Leopard’s Grand Central Dispatch does the same thing for processes, packetizing tasks into Blocks and routing them to available processing cores as efficiently as possible. It can also manage the big picture for the whole system, adjusting how it balances its tasks as the performance load increases. This would be close to impossible for Individual developers to do themselves.

Source: WWDC 2008: New in Mac OS X Snow Leopard (http://www.roughlydrafted.com/2008/06/12/wwdc-2008-new-in-mac-os-x-snow-leopard/)

Krevnik
Jun 15, 2008, 12:25 PM
Interesting summary. Sounds like the core of it is a brand new scheduler in the kernel. Hopefully there will be some supporting user-level APIs which help a developer tap into the scheduler in an efficient manner. Something similar to the TBB syntax would be really nice as part of it.

I have a couple apps I would like to further parallelize, but writing the support code for it has been a challenge. I might look into TBB in the meantime.

dejo
Sep 11, 2009, 10:32 AM
Grand Central Dispatch source code is now public!

http://libdispatch.macosforge.org/

Cromulent
Sep 12, 2009, 01:26 AM
Grand Central Dispatch source code is now public!

http://libdispatch.macosforge.org/

That is a very interesting development and one which should enable developers who want to target other UNIX platforms feel more comfortable using at least the lower level portions of Grand Central Dispatch.

electroshock
Sep 13, 2009, 04:15 PM
More information from Apple on:

Introduction to Grand Central Dispatch and fundamental concepts such as blocks:

http://developer.apple.com/mac/articles/cocoa/introblocksgcd.html

How to do concurrent programming -- a new way of thinking for some people:

http://developer.apple.com/mac/library/documentation/General/Conceptual/ConcurrencyProgrammingGuide/Introduction/Introduction.html

Grand Central Dispatch reference:

http://developer.apple.com/mac/library/documentation/Performance/Reference/GCD_libdispatch_Ref/Reference/reference.html