The Politics of Parallelism
Is it called the server room? Computer operations? The rack closet? Joe's office? I've lost track. Seems like there's a different name for it wherever I go -- the place in the organization where all the heavy duty (important) computers are kept.Whatever it's called these days, I was recently in such a place at an organization I was visiting. I just happened to be standing in the way of the guy that was setting up a new batch of computers. I noticed the computers were all from the same vendor, all had the same configuration and were pretty much getting the same software treatment.
I asked the chap that was setting up the computers what the CPU/core specifications were for the computers he was setting up. He politely told me what the specs were. I then asked him were they going to be clustered. He politely told me that he wasn't sure but he thought they would be. I then apologized for being so inquisitive, and then proceeded to ask him what kind of application would be running on these computers. He also was not quite sure, but he knew it would be server software of some type. Finally I asked him who made the decision to get these computers with these specs. He told me that he did and he proudly stated that they were the best bang for the buck. He went on further to tell me that he got most of the quotes for the organization and setup the computers when they came in. Some department would call him with a request for X number of computers and he would proceed to get the best bargain.
Now, I don't know why I found that amusing. But once I got back to my car, I lost it a little. For some reason I reflected on the various purchasing-responsibility-schemes that I have come across. I never really thought about it until that day. I've seen scenarios where the network administrators decide what hardware is going to be purchased because it had to be compatible with their networks. I've seen scenarios where the system administrators were the major decision makers because they were going to be the ones who would be responsible for maintaining whatever boxes were purchased. I've even seen situations where purchasing department was in charge of deciding what kind and how many computers were going to be purchased because they were somehow in charge of the fiscal budget. I guess the one that I've seen the most is when the software vendor dictates what kind of hardware will be purchased to run their application. So what about the software development group or software engineering group's two cent? Not that I've been everywhere, but I've been around. I don't recall many scenarios where the software development or software engineering group got to decide what the hardware specs would be. It's been my experience that the network administrator's or system administrator's view of multiple cores of parallel processors is a little different than the developer's view. I definitely know that the purchasing department's take on which multicore computers to buy will be different than your average software development group's take.
Now that quads, 8 core, and 16 core (and soon to be massive multicore) computers are the order of the day, do we need someone that understands something about parallelism, CMT, multithreading, or multiple cores to be involved in computer selection? Does it matter that parallelism requirements of the application might not match the parallelism capabilities of the computers being purchased? Has computer purchasing become such a no-brainer that it simply doesn't matter who orders the computers as long as they get the "best bang for the buck"? Is it the case that the salesperson at the neighborhood superstore can tell your CFO everything he/she needs to know about multicore computers?
I can't quite put my finger on what had me laughing so hard in the car that day. Maybe its the fact that I am routinely mired down in system analysis, use case analysis, software requirements, and performance metrics in my decisions in what hardware is needed. But it seems like for many those are things of the past, obsolete, time wasters. Maybe it was the juxtaposition of the recent Petri net design that I had been struggling with and the cheapest-price-works approach to parallelism that I had just encountered. Or maybe it was the contrast of my infatuation with capturing the nondeterministic behavior in the software requirements with all the hard work the chap must have put into getting the best quote from the short list of computer vendors available. Maybe me and Tracey are reading too much into this multicore thing. Maybe all this Petri Net, Pram Model, Nondeterministic-AI-complete mumbo jumbo has already been worked out and somehow me and Tracey missed the memo. Which in and of itself is funny (maybe that's why I laughed so hard). But whatever the case is, when it comes to multicore computer purchasing, whether the decision is ultimately made by the database administrators, or network administrators, or system administrators, or Joe the computer guy, it appears to be a simple matter of organizational politics with very little regard to what part parallelism plays in those politics. Who makes the decision in your group?