Distributed computing has been available for many years in the mainstream computer industry. The logic goes something like this: if you spread tasks across several CPUs you can process data more quickly and each CPU can be made smaller and run cooler than a mega-sized single chip. As the manufacturers reach the physical limits of how fast and powerful an individual CPU can be, they have turned to distributed processing to increase speeds and data throughput. The dual-core CPUs in the new Intel Macs are an example of a kind of distributed processing, as they spread the load over several CPUs.
Apple surprised almost everyone with the introduction of Nodes and distributed processing with Logic v7. However, the availability of faster Gigabit Ethernet and Apple's desire to promote Final Cut Pro as an alternative to the products of established companies such as Avid, meant that its use with other software in the Apple range was inevitable. If Final Cut Pro was going to be a serious competitor, it needed hardware acceleration. Instead of going down the 'dedicated DSP card' route, Apple decided to explore distributed processing via Ethernet instead. This also had the advantage that Apple could sell more Macs, and the rackmounting XServe was introduced to supplement this niche.
Of course, it was obvious that Logic would benefit from distributed processing, especially in the 'old' days of the G4 processor. Apple's original documentation suggested scenarios where you could work on a Gigabit-equipped G4 Powerbook (the 'Master') by freezing processor-intensive tracks, connecting your G5 Powermac (the 'Node') via Ethernet, and then mixing, unfrozen, by utilising the Node's extra processing power. Of course, in these days of dual- and quad-core Intel processor Macs, quite a few of us now have a lot of processing power in a single machine. So has distributed processing had its day?
There are a few situations that would definitely still benefit from the use of Nodes. If you're still using a G4 Powerbook and don't want to upgrade to an Intel-based portable because your favourite plug-in's aren't (or won't be) converted to Universal Binary versions, you could increase your processing power by using something like an Intel Mac Mini as a Node — it is perfectly possible to run Intel and PPC Macs together in this way. A used G5 could also be another inexpensive possibility, but this would take up a lot more space. In both cases, you won't necessarily need a monitor, keyboard or mouse permanently connected, because the Node application can be run automatically when the Mac is powered up if you put an alias of the Node program in the Startupitems subfolder of your Library folder.
Apple confused a lot of people with their original specification for distributed processing, but you can set up a Node network with Macs that don't meet Apple's minimum recommendations. It's perfectly possible to use a Mac with a G4 processor as a Node, for example. You can also use lesser versions of Ethernet, rather than the recommended Gigabit — but you need to be aware that performance of the Node will be severely limited. However, for those occasions when you need that one extra Sculpture or Space Designer it may get you out of a sticky patch.
The transition of Logic to the new Intel platform has been a surprisingly smooth affair — obviously, the years of expertise the old Emagic company had gained when developing the old windows-based product must have really paid off. I've been running Logic v7.2.1 on both my 'old' 1.8GHz dual G5 and my new 2.0GHz Macbook Pro with no problems or appreciable differences between the versions. Some people have reported some instability issues with the Intel version of Logic and the Rewire support introduced in v7.2.1, but I've been unable to reproduce any of them here, so it may just be one of those complex software interaction issues we're so used to in computer recording that are so difficult to diagnose.
I've had a flurry of emails from some concerned people who were only managing a few tracks and plug-ins with Logic on their new Intel Macs. It turns out that it was because they were running the non-Intel version of Logic under Rosetta (the PPC emulator built into OS X) and not the Universal Binary. It's pretty amazing how many 'my plug-ins won't run on my new Macbook' questions I've seen over the last few weeks. One of the reasons people are getting confused is that the Rosetta emulator has been implemented so seamlessly. If you run a PPC program on an Intel Mac, there's no direct indication of whether it's running natively or under emulation. To be sure which type is running, you can use the Activity Monitor program (located in the Utilities subfolder of the Applications folder) to see whether the program is running as Intel or PPC code in the Kind column. Perhaps Apple should add a rose border around the icons of any programs running under emulation? One correspondent has reported something really strange: he has the Universal Binary version of Logic, but his Intel Mac insists on loading the PPC one. That's one question for Apple to puzzle out I think!
My Macbook Pro came with 512MB RAM and the first thing I did with it was install Logic and compare the performance with my G5. My initial impression was that it felt about as snappy as the PPC version and that there wasn't much in it between the two systems as far as track count and CPU usage were concerned, even though my G5 has 4GB RAM. After installing an extra 1GB of RAM in the Macbook Pro however, I now feel that the portable is the superior system — Logic screen draws and the feel of the program are much smoother with the Intel version. This is impressive performance for a portable and I'm eager to see what the Intel desktops can do with an updated and optimised Logic: The Next Generation. And while we're looking to the future, here's a blast from the past; the nebulous Deep Architecture Error that I thought had been banished with Logic 6 has reared its not very ugly head again in v7.2.1. It doesn't seem to cause any problems and I've not met anyone who can tell me what the error actually means. I wonder what other weird and wonderful code is buried in the labyrinthine innards of Logic?
I've found that setting up Nodes can be very frustrating if you don't do things in the correct order. They can be quite flaky too; I definitely find myself having to reboot both Logic, the Mac running Logic, and the Node machine on a regular basis. First of all you'll need to find the Node program itself. The Logic manual says that it's located on the distribution DVDs, but the Logic Pro install also copies the Node installer into the Utilities subfolder of the Applications folder. Running the installer package copies the Node application into the Applications folder and you can copy it to the Node machine from here. You must also make sure that the version number of the Node program is the same as the version of Logic you are running; this will, of course impact on which Mac you can use as a Node. If the version of Logic you are running requires Tiger, so will your Node machine.
Next you need to connect the Master (the Mac running Logic) and the Mac you are using as a Node with a good-quality Ethernet cable. You can use more than one Node machine, but you'll need to get a Gigabit bridge to enable you to connect multiple Macs via Ethernet. Now run the System Preferences application from the Applications folder and click on the Sharing icon. You'll have to disable the Firewall from here; if you're still connected to the Internet via Airport, you may want to consider using a hardware Firewall to protect your Mac from the outside world. Although I've yet to be persuaded that Macs are under serious threat from viruses, it's better to be safe than sorry.
It's also worth checking the Network pane while you're here. If you select the Built-in Ethernet configuration you should see that an IP address has been automatically allocated, assuming that Using DHCP is selected. If you open the Terminal application from the Utilities subfolder of the Applications folder, you can type Ping followed by the IP address of any other networked Macs, to make sure that everything is hunky dory and communicating correctly in networking land.
If you select the Show pull-down menu in the Network pane of System Preferences, you'll see that you can also choose Firewire as a Networking type. If you connect two Macs together using a Firewire cable, you can then treat them as if they were connected via Ethernet. You could try using this connection if one (or both) of your Macs doesn't have Gigabit Ethernet, as you may find it improves performance — otherwise Ethernet is the way to go.
Once you're happy that everything is connected properly, run the Node program on the Mac that is to be the Node computer — it's important that you do this before loading Logic on the Master. Next, open the Node Preferences from Logic's Audio menu, where you should see any connected Node machines displayed in this list. Each Node can be enabled and disabled as you desire. If a Node isn't actually available, its name will be greyed out. Clicking on Enable Logic Nodes will reboot Logic's audio engine and make any greyed-out Nodes available. Logic remembers the status of connected Nodes, so you don't need to do this each time you boot up.
Nodes Versus Freeze
Freezing was Logic's first attempt to overcome the limitations of the computer's processing power. The advantages of freezing a track over running a Node is that everything remains on one computer and the complexities of using a network are eliminated. You can also freeze any kind of track — including tracks with third-party plug-ins. The disadvantage, of course is that not everything is running 'live', so to make any changes you need to unfreeze a track, something which can be quite difficult if you're running out of CPU power. As Logic remembers the status of tracks with respect to whether they are being sent to a Node or not, it would be nice if the program automatically froze those tracks if a Node wasn't available when you load a Song. This would make working on a portable PC then plugging it into your Node(s) for mixing much easier.
In the Arrange page, select Node Buttons from the View menu to make them visible. To assign a track to the Node just click on a Node button. If processing can be passed onto a Node, the button will glow blue. You can assign multiple Node buttons by clicking and dragging across them. Holding down the Apple key and clicking on a Node button should activate all the Node buttons on the Track list — but this doesn't always work for me. If you open up the System Performance window from the main Audio menu, you'll see that the usual CPU and Disk I/O access meters have been joined by one showing Nodes performance. This will display all the processing which Logic has automatically allocated to a Node.
What can and can't be processed by a Node? You may find that you cannot send a track to a Node, with the Node button remaining resolutely grey when you click on it. This is because there are some limitations as to which plug-ins can be processed on a Node. Basically, only Logic's own plug-ins can be sent to a Node, with the exception of the EXS24 sampler, apparently because of copyright issues arising from running copies of samples on more than one Mac. (This may be also one of the reasons why Apple haven't implemented the processing of any third-party plug-ins on a Node.) Multiple-channel instruments are also a no-go, so you can't send Ultrabeat to be processed on a Node. You also can't send anything from busses, auxes, or output channels either, which is a major limitation, as these are likely to be where you really want to insert the CPU-hungry Space Designer reverb.
If a track contains only Logic virtual instruments and effects plug-ins, the whole lot can be passed on to a Node. If you have Logic effects inserted on a track with a third-party Audio Unit virtual Instrument , only Logic's own plug-ins will be processed on the Node. If you have a mixture of Logic and third-party effects plug-ins on a track, only the first Logic plug-ins inserted before the first third-party one will be sent to a Node. It doesn't matter if you have a Logic virtual instrument on the track — nothing after that first AU plug-in will be sent to the Node. EXS24 and Ultrabeat both act like third-party Audio Units in this respect. You can see that careful thought needs to go into the placement of effects and Instruments if you want to make the most of distributed processing.
Logic compensates for all latency introduced when passing data to a Node on playback, and it does so very well indeed, keeping timing tight. However, if you try and play a virtual instrument live when the Node button is activated, you'll find that there are varying degrees of latency introduced depending on the plug-in. To be fair, you'd expect this, as Logic can't be expected to compensate for real-time delays. Consequently, it's better to consider Nodes as a playback-only solution.
There's no easy answer to this one — it's one of those 'how long is a piece of string' questions. It all depends on the computers you are using and, to some extent, which one you use as a Master. If one of the machines doesn't have Gigabit Ethernet, performance will definitely suffer. For this article I did some experimentation with the Macs I had available, which should give you a rough guide to see if it's worth considering using your computers as Nodes.
Master: 867MHz G4 Powerbook without Gigabit Ethernet; Node: dual 1.8GHz G5 with 4GB RAM.
With this combination I managed to off-load four instances of Sculpture, all using associated Space Designer plug-ins set to a Long Hall impulse response, before the G4 started to show up timing-error messages. I'd expect the Gigabit G4s to perform significantly better, as the Node meter itself was barely registering.
Master: dual 1.8GHz G5 with 4GB RAM; Node: 867MHz G4 Powerbook without Gigabit Ethernet.
A single instance of Sculpture sent the Node meter scurrying to the maximum value. If you're keeping an old pre-Gigabit G4 around for use as a Node, my advice is to forget it and get an Intel Mac Mini instead.
Master: dual 1.8GHz G5 with 4GB RAM; Node: 2GHz Macbook Pro.
Master: dual 1.8GHz G5 with 4GB RAM; Node: 1.6GHz Intel Mac Mini Duo.
With both these combinations I was able to off-load ten Sculpture/Space Designer tracks to get a Node CPU load of around 50 percent. In my real-life usage of the G5/Mac Mini combination, I haven't managed to run out of CPU power at all, even with extremely complex songs.
While Distributed processing can seem like manna from heaven, its limitations and complexity (and the emergence of faster Macs) means that it isn't for everyone. If you have an older Mac with Gigabit Ethernet, setting up a Node with a Intel Mac Mini isn't too onerous or space-consuming, and may make more sense than selling the G5 for one of those new shiny Intel Mac Pros.
Have Your Say!
If you want to suggest changes or improvements to Logic, then here's your chance! The Apple development team are inviting SOS readers to send in their suggestions of what they'd most like added or changed in Logic. Email your top five suggestions (in order of preference) to email@example.com, and we'll forward your lists on to the Logic team. We'll be asking them for feedback on which changes users deem most important and how these might be addressed.