Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

Appeltje

macrumors newbie
Original poster
Mar 5, 2011
6
0
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?
 
Pretty sure all apps will make use of the dual core, though I suppose they might have to be compiled for iOS 4.3 for it to take full advantage.
 
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?

It is the OS will utilize the dual core. Developer don't have to know or do anything extra. All apps will be benefit.
 
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

That's the thing i am wondering.... Or is iOS doing it automatically..
 
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).
 
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).

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.
 
It is the OS will utilize the dual core. Developer don't have to know or do anything extra. All apps will be benefit.

False. Some code simply cannot be distributed over cores. In turn, some Apps will not be able to distribute processing as currently written.

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.

Exactly. I would assume developers will have to implement threading to take full advantage.
 
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.

iOS is a natural multitasking system. There are many system tasks running all the time. each app already has multiple threads. Now days, very few or none games and complicate apps uses only one thread. Dual core or single core makes no difference to dev.
 
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.

That's probably the way it works, if you use threads or Grand Central Dispatch the work is distributed to the two cores.
 
From Apple's Concurrency Programming Guide, last updated April 2010:

http://developer.apple.com/library/...ogrammingGuide/Introduction/Introduction.html

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 user’s 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.

So the capability to run multiple code branches at once has existed prior to dual-core iOS devices. Presumably, with single-core iOS devices, iOS gave each branch (that is, dispatch queue) a slice of CPU time. With the iPad 2, iOS will most likely spread the queues out over the cores. From what I can tell, Grand Central Dispatch has been in iOS since 4.0.

Now, whether an app that doesn't use GCD will benefit from a multi-core iPad, I dunno. There will be less contention for CPU resources from all the background tasks, at least.
 
I want Adobe to make a real version of photoshop -_-

There have been many times I wanted to create a cool wallpaper but couldnt because there were no apps that allow to set a image size, and save it as png..

I had to use like 5 different apps and weird techniques and it took me about 30 mins just to make a very basic wallpaper lol

I used brushes, and some design app (its pretty similar to adobe illustrator)
 
When I look at Activity Monitor, I see my Mac running several dozen threads with nothing in particular happening. iOS is pretty similar, though the count would probably be a little lower. Each active thread gets a few milliseconds (or less) to run before another one is switched in to get some run time. With one CPU, all the threads have to wait their turn for processing time, but with two cores, each thread should in theory get use a CPU for twice as long between switches. Then, when there us much less work to do, one core can take a nap to save power.

Power management, not speed, is probably the biggest advantage to two cores, because the most amount of heavy processing takes place in the GPU. If iPad 2 is notably faster, that is more likely where the improvement is coming from.
 
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.
 
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.
 
The iPad 2 is really going to scream! I can't wait to try browsing heavy websites with it. Engadget did a pretty good quick demo video at the announcement, and it sure looked fast. That fact alone is likely going to compel me to upgrade.
 
I suscept some dual core apps will be out by march 10th. From apple, it it is the imovie, garageband, photobooth. Gameloft is working on 2-4 games using the unreal engine. I think these games will work on both iPads, but perform better on iPad 2. Aside from these, I think more will come and esp. when iOS 5.0 is out. According to Scoble, it is awesome. Can't wait for March 11th.
 
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.

Core animations and other system API functions could very well take advantage of multi-core since iOS 4.0 release. Just because you have multiple processors doesn't mean your app will benefit unless you specifically require something done in parallel. BUT it will to an extent such as loading resources, core animations, and so forth...

Perhaps when the actual hardware is released for many developers don't get first dibs on the hardware we can see how the apps are affected; we get it when regular people get it. Unless you are a big house dev company that is...
 
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.

In addition to GDC there's also NSThreads and NSOperationQueue.
 
In addition to GDC there's also NSThreads and NSOperationQueue.
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.

Even a single threaded app will almost certainly run faster on the iPad 2. Firstly I assume there will be the possibility for the app to have one of the cores all to itself with any background system processes and task completion of other apps being scheduled onto the other core, but I suspect more significant is the fact that with the A5 almost certainly being a Cortex-A9 design, that has about a 25% performance boost over a Cortex-A8 at the same clock speed.

- Julian
 
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.
 
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.
Ummmm...no (assumming you were replying to me). You're olnly addressing half of my post.

There are at least three factors that could potentially speed up an app's performance on the A5, the first paragraph in my previous post refers to one of them, the second paragraph refers to two others. The two factors discussed in the second paragraph are applicable to all apps with no code changes required so yes, that's all of them. The factor (on multithreading) discussed in my first paragraph will only speed up apps that have been written to use GCD or other thread-like APIs.

For the right apps, the speedup from multithreading will be far more significant than simple speedups due to lower contention and better IPC (Instructions Per Clock cycle) for apps that are restricted to a single core.

- Julian
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.