I am wondering which apps are utilizing the dual core processor?
iMovie, does Safari make use of it? And do you think the speed will be greater than the iPad 1?
How do we know this?
Computer games on desktop machines did not take advantage of dual core Intel CPU's for years till new ones were written so programmers could spread the load and threads of a game across multicore CPU's
How do we know this?
Computer games on desktop machines did not take advantage of dual core Intel CPU's for years till new ones were written so programmers could spread the load and threads of a game across multicore CPU's
Because this isn't Windows, it's an OS built for a specific platform and already has all the API hooks in place to support it, all that Apple had to do was flip a switch. Granted, some developers will clearly find a way to take even more advantage of it, but I am sure by default there is some general support for threading across both cores to help speed things up (and use less battery).
It is the OS will utilize the dual core. Developer don't have to know or do anything extra. All apps will be benefit.
Forgive me, but that sounds a bit like Magical Guesswork to me.
You can't just have program code that moves say graphics around on screen, and with a magical flip of a switch some lines of the program get put onto one core and other lines of your code get put onto the other core and it all just works together in sync perfectly.
Forgive me, but that sounds a bit like Magical Guesswork to me.
You can't just have program code that moves say graphics around on screen, and with a magical flip of a switch some lines of the program get put onto one core and other lines of your code get put onto the other core and it all just works together in sync perfectly.
False. Some code simply cannot be distributed over cores. In turn, some Apps will not be able to distribute processing as currently written.
Exactly. I would assume developers will have to implement threading to take full advantage.
Concurrency is the notion of multiple things happening at the same time. With the proliferation of multicore CPUs and the realization that the number of cores in each processor will only increase, software developers need new ways to take advantage of them. Although operating systems like Mac OS X and iOS are capable of running multiple programs in parallel, most of those programs run in the background and perform tasks that require little continuous processor time. It is the current foreground application that both captures the users attention and keeps the computer busy. If an application has a lot of work to do but keeps only a fraction of the available cores occupied, those extra processing resources are wasted.
In the past, introducing concurrency to an application required the creation of one or more additional threads. Unfortunately, writing threaded code is challenging. Threads are a low-level tool that must be managed manually. Given that the optimal number of threads for an application can change dynamically based on the current system load and the underlying hardware, implementing a correct threading solution becomes extremely difficult, if not impossible to achieve. In addition, the synchronization mechanisms typically used with threads add complexity and risk to software designs without any guarantees of improved performance.
Both Mac OS X and iOS adopt a more asynchronous approach to the execution of concurrent tasks than is traditionally found in thread-based systems and applications. Rather than creating threads directly, applications need only define specific tasks and then let the system perform them. By letting the system manage the threads, applications gain a level of scalability not possible with raw threads. Application developers also gain a simpler and more efficient programming model.
This document describes the technique and technologies you should be using to implement concurrency in your applications. The technologies described in this document are available in both Mac OS X and iOS.
Yes, but even so, there are threading options in iOS that have been around a while. iOS is already multi-core ready.iOS 4.0 has GCD built into the API. You must write code to utilize it, however. Simply putting your code in a block and passing to the GDC queue is very easy to do. But the apps must take advantage of it and must design the app for multithreading purposes.
Yes, but even so, there are threading options in iOS that have been around a while. iOS is already multi-core ready.
EDIT: And the apps should be too.
Again, that's not fully correct. Apps need to use GDC specifically if their processing rely on parallel processing. There is no free multi-core processing unless you submit your code block to the queue. This is in the API documentation.
The key question really is how many app developers have threaded their apps, either using explicit thread APIs or by splitting off tasks for submission to GCD, and how many have written their apps as a single thread? I just did some searches on the developer forum here, hoping to see it alight with discussion on how to adapt to the dual core world, but there was very little there; I'm not sure what that means.In addition to GDC there's also NSThreads and NSOperationQueue.
Ummmm...no (assumming you were replying to me). You're olnly addressing half of my post.Ummmm...all of them maybe, given that developers don't have to re-write code to take advantage of the extra clock cycles and which core they are running on.