
Mac OS X has shown a lot of innovative features from the very first version through Leopard. Older versions of Mac OS X gave us such great abilities such as Spaces, Expose, Dashboard and a lot more. Leopard gave us great features such as TimeMachine, Quicklook, stacks and so much more. The new Snow Leopard isn’t bring a lot of UI niceties. They are modifying how stacks work, which is a welcome change. Most of the Snow Leopard changes are under the hood and these aren’t small changes. Snow Leopard will be almost completely 64-bit, be written exclusively for the Intel architecture (Sorry PowerPC Mac owners. Leopard will be the last OS you can use on those machines). I don’t blame Apple for doing this. Apple cut over to Intel several years ago and there are cheaper Macs today then ever in history. Several other major upgrades in the next Mac OS will be Grand Central Dispatch, OpenCL, and Exchange integration within the OS.
Next, let’s look at Grand Central Dispatch (GCD). The main processors of computer from the invention of the transistor has gained speed primarily from an increase in how fast the chip is clocked. It was all about megahertz. The fastest commercial chips by Intel reached just under 4 gigahertz before the industry realized that heat and power requirements were becoming a big problem as they gained speed. The solution to this is to put multiple chips on one die. Today it is almost unheard of to have a single core processor. Most people have 2, 3, or 4 processors in their desktops and laptops. Some people run more than 4. Servers have been using this method for a long time. The difference is that servers typically can use multiple processors much easier than desktops can. Servers run multi-threaded or heavily threaded applications like web server, application services, and databases. There can be thousands of threads running on one server. Until recently desktops and laptops rarely ran more than 50 to 100 threads at any one time. One processor can handle this easily. As applications require more and more power however these programs threads can suck up a tremendous amount of a single processors time. This creates a situation where your computer becomes unresponsive or sluggish when you run multiple programs at once. A good way to look at this is if you have a highway that is one lane and has a speed limit of 100 mph. Now put a hundred cars on that one lane highway. Ultimately those 100 cars will only get to their destination as fast as the lead car can go or possibly a car in the middle is slow backing up half the cars. This is the problem with single processor systems. Now a multiprocessor (multi-core) system is similar to a highway with 4 lanes and the speed limit is 75 mph. Now take 100 cars on that 4 lane highway, even if several cars travel much slower than 75 mph the other cars will make their way around and still get to their destination much quicker than a single lane highway with a faster speed limit. This solution to speeding up processors doesn’t look like it is stopping anytime soon. A couple years ago Intel showed off a concept chip that had 80 cores on one chip. This is the way we are going. There is one very large problem with multi-core, multi-processor systems. It used to be easy for a programmer of software to write for a one thread processor. You just put your threads back to back and as the chips got faster your program got faster. Now if you run that same program without any modification it will not take advantage of the multiple cores. It will wait for a single core to be freed up so they can run back to back. Say this program is a 3D Rendering program that makes movies similar in quality to Pixar films. This program unchanged will run faster on a single core chip running 3.8GHz than a 4 core chip running at 2.8GHz. So for programmers to take advantage of this trend of multi-cores they have to rewrite they programs, sometimes from scratch. Let’s take that 3D Rendering program, optimize it for 4 core systems. Now that same program will probably run around 3.5 times faster on that 4 core system than that single core one. It is hard, very hard to rewrite a program to take advantage of multiple core systems. Also, if you optimize for a specific number of cores you will not gain the maximum speed from other cored systems. This is where Grand Central Dispatch comes into play. This is a new mechanism at the ground level of OS X that handles the threads and cores for you intelligently. The programmers still need to rewrite they programs, but it is far simpler. All a developer has to do is mark work units as threads with a simple addition to the objective-c language. The programmer can also put threads in order of execution if needed. Other than that Grand Central Dispatch takes those work units and attaches them to already created generic threads waiting for the programming data. The advantage of this is that GCD knows how many threads the system can support at one time. When systems that have 30, 40, 50, or 100 cores how does a programmer write they program to take advantage of this? If the programmer uses GCD and defines all the work that needs to be done into work units (threads) then GCD can take those work units and scale from one core to hundreds of cores and this is for just one application. Most people have somewhere between 10 to 100 apps running at all times, even if you don’t know it. Now imagine that each one is written specifically to take advantage of a specific number of cores from each developer. All of these programs end up stepping on each others toes and attempting to take over the system whenever they can. Grand Central Dispatch on the other hand knows about the status of the hardware and all the software running on the system. Now can you imagine how much more efficient this would be, especially when we gain more and more cores in newer machines. GCD is the future for both developers and end-users. Developers will gain longevity and performance of their apps and end-users will be able to squeeze every drop of performance out of their machines and gain a ton of speed from all their GCD programs as they upgrade to more and more cores.
OpenCL is an extension of OpenGL and is an open standard. OpenCL has been supported by a ton of the major hardware and software companies on the market including AMD, Nvidia, and Intel. OpenGL is a graphics language often used in Unix systems and is also available on Mac OS X and Windows. OpenGL can be used to display 2D and 3D graphics for games and other programs that need to display a specific type of data. For Windows users it is similar to Directx, but Directx is only available in Windows and is a closed system. OpenGL is open for anyone to use free of charge in any game, program. or operating system. The power of video cards within the last several years has eclipsed main processors for specific types of data. CPU’s are great at running a hugely different set of complex applications. GPU’s in video cards can run fairly simple pieces of code on a large dataset really quickly. One of the perfect jobs for a GPU is video encoding. Taking a compression program (the simple piece of code) and allowing the hundreds of programmable units within GPU’s to run this compression on gigabytes of video data in a 1080p stream is what video cards do best. The problem is that each manufacturer of these cards has released a custom programming environment for their respective systems. As a programmer if you decide to write a program that compresses 1080p video and you write it for Nvidia Cuda, it won’t run on Intel or AMD video cards. in comes OpenCL where OpenGL left off. OpenGL will run on any video card on the market allow game developers to write their game not caring which video card the end-user has. OpenCL is for regular programs to run on video cards just like our compression program. Now a developer can write their compression program in OpenCL and it will run on every video card and those released in the future as well. Quite a gain for the developer and the end-user.
The last major addition to Snow Leopard that I am going to go over is Exchange Support. This is huge for Apple for the business market. Apple is adding the ability for Mail, iCal, and Address Book to integrate directly out of the box with corporate Exchange systems. Apple is making it so that the integration of Mail, iCal, and Address Book still applies as exchange systems push mail out, have requests for appointments and looking for room availability for meetings, as well as integrating a Global Address List within Address Book. The funny thing about this addition by Apple is that even Windows itself doesn’t provide Exchange Support out of the box. A Windows user has to buy Outlook or gain it within Microsoft Office in order to gain Outlook. Often this can cost hundreds of dollars to get these apps. Apple is providing it free with the Snow Leopard and Mail, iCal, and Address Book come with the operating system.
There are other major additions in Snow Leopard that I’m not covering here such as Quicktime X, but I feel that the 4 that I have covered here are the biggest additions Apple is putting in Snow Leopard. Apple is using these technologies to gain short term and long term users. Exchange support allows Apple to gain market share in a segment they haven’t done well in, the business market. 64-bit computing gives end-users a speed boost now and future proofs the OS. GCD and OpenCL make it so that future programs written for those technologies would gain massive speed improvements and allow developers to build programs faster. These also future proof the OS. It is a hot time for Apple and Snow Leopard is paving the way for the Mac OS to gain major market share.
Oh and I almost forgot the biggest feature of Snow Leopard by far. The upgrade to Snow Leopard is $29. Yes, I said $29.
There are other major additions in Snow Leopard that I’m not covering here such as Quicktime X, but I feel that the 4 that I have covered here are the biggest additions Apple is putting in Snow Leopard. Apple is using these technologies to gain short term and long term users. Exchange support allows Apple to gain market share in a segment they haven’t done well in, the business market. 64-bit computing gives end-users a speed boost now and future proofs the OS. GCD and OpenCL make it so that future programs written for those technologies would gain massive speed improvements and allow developers to build programs faster. These also future proof the OS. It is a hot time for Apple and Snow Leopard is paving the way for the Mac OS to gain major market share.
Oh and I almost forgot the biggest feature of Snow Leopard by far. The upgrade to Snow Leopard is $29. Yes, I said $29.








