This article describes a real-word software port, with examples of how various porting challenges are resolved. If you are a software developer porting software to UNIX, you will find these techniques invaluable in avoiding common pitfalls, resolving bugs, and improving your productivity.
OMG, a UNIX adaptation layer over z/OS… what a beast! Impressive that they are pushing this to their customers.
OMG, a UNIX adaption for east european mainframes more than 30 years ago! Nice to see IBM is putting some attention (in form of such an article) to it. 🙂
Basically, quite interesting. We’ve seen in the past that enriching “closed” environments with free and open software can be a benefit – both for the platform per se, and for its users (in this case called customers, of course).
As I said, porting UNIX stuff to the mainframe isn’t particularly new. It was already possible on the mainframe robotron EC1055 (produced from 1979 on) and its successors. Both the operating system families OS/ES (comparable to IBM’s OS/360, /370 and /390, MVS line) and SVM (comparable to IBM’s VM line) had their UNIX “toppings”: VMX and PSU. VMX means something like “VM UNIX”, and PSU is the abbreviation for “Programmierstützende Umgebung” (developer supporting environment) or “Programmiersprachumgebung” (programming language environment), refering to C as the main programming language in the UNIX world.
Not new. But still – very interesting and promising, because it is a means to open the quite restrictive world of IBM HPC and mainframe computing. I’d like to emphasize that this is specially a good idea for learning and developmet.
We all know the mainframe doesn’t exist, so it’s good that there is a UNIX on it, which can be turned into a life support system using free and open software as power cells. 🙂
… running free software on million dollar hardware.
How is that ironic?
The vast majorety of the top 500 super computers run on “free” software.
The internet is built on the back of “free” software.
However all this “free” software still has heavy porting, development and bug fix costs. So it’s not actually free. It’s just cheaper and more efficient than writing cones of the same software from scratch.
You must be a hit at parties… it could not possibly be that I was joking. Right?
IBM’s Z systems are the epitome of proprietary and expensive, that is why I thought it was ironic. Alas, if I have to explain the joke…
Edited 2010-04-15 16:03 UTC
Maybe it just wasn’t funny![;)](https://www.osnews.com/images/emo/tongue.gif)
OK, I can deal with the expectation of free software, but asking for the hardware for free as well is just too much.
As I have shown, a modern x86 cpu is roughly 10x faster than a Mainframe CPU. Why port from fast x86 cpus, to dog slow cpus? I dont understand why you want to get 1/10th of the speed?
Because two things:
* A lot of old mainframes are still around;
why just let them die if we can update their
software stack and make them still useful instead
of being pieces of museums?
* It is done to demonstrate that it can be done. That
is the way that engineering works.
Edited 2010-04-15 15:10 UTC
Because it is much cheaper to just use modern hardware: it’s cheaper in the time required to port software, cheaper to find administrators, cheaper to maintain the hardware, cheaper to license the operating system, cheaper to power the hardware, cheaper to store the hardware, and cheaper to cool the hardware.
I don’t think there are many people who have access to IBM mainframes and do things with them just because they can. It’s one thing to mess around with workstations or servers, but a mainframe isn’t exactly something one can usually get off Craigslist or eBay and put in his basement.
Do you have any numbers to back this claim up, or are you just hand waving?
This is very simple. Because those mainframes are junk compared to x86/nvidia/powerpc/cell powered supercomputers. They are even crap compared to powerful x86 servers.
But they have one quality. That is: they cost a very large amount of cash and IBM is making big bucks from selling them.
@twitterfire
I can tell that you have not ever worked on a zSeries machine, they are VERY powerful machines. Virtualization is a new thing? zOS has been using LPARs to do this for a LONG LONG time. I believe that the mainframe will remain at the core of a lot of businesses for quite sometime.
Regarding running native code on zOS, I believe this is a great idea although I don’t know how many people will be doing this as OMVS really provides enough functionality, but you are clsoed to whatever is provided with it, I’m not sure what the compiling capabilities are within OMVS besides an assembler linker.
The other problem that exists is that most of the applications written for zOS were written in Cobol and the work to port that into a more mainstream language (c, c++, java) would be a HUGE task that would require A LOT of dollars. Don’t fix it, if it ain’t broke!
So with all this being said, I think it is a great idea but it will take a long time to adopt.
Some people posting here don’t seem very well informed…
First.
the unix layer for z/OS exists for quite a while now (more than 10 years iirc). So it’s nothing new. It was developed when ibm though mainframes would become obsolete and everything would be run by (unix) server farms. A unix layer for z/OS would be a good argument to keep the mainframe hardware running.
Second.
Some people are comparing mainframes in general with x86 in general and conclude that x86 is faster.
This doesn’t make sense at all. The z10 that was releassed in 2008 can have up to 1.5 terabyte of RAM and can have up to 77 quadcore ppc based PUs operating at 4.4Ghz each. Eliminate all the overhead you have with clustered server farms running linux/unix/windows and you have a beast roughly equivalent with 1000 x86 based servers.
Edited 2010-04-16 08:40 UTC
You have been fooled by IBM marketing. IBM was the first company to employ FUD on a wider scale. IBM is famous for foul play and FUD.
http://en.wikipedia.org/wiki/Fear,_uncertainty_and_doubt#Definition
Regarding the performance of Mainframes. A z10 with 64 cpus, give 28.000 MIPS. An 8-socket Nehalem-EX gives 3.200 MIPS – under software emulation. Software emulation is 5-10 times faster than native code. If Nehalem-EX could run Mainframe software natively, 8 x86 cpus would give 16.000 – 32.0000 MIPS. You need 8 Intel x86 cpus to match 64 Mainframe cpus.
http://en.wikipedia.org/wiki/Hercules_emulator#Performance
Mainframes are good for different things, but cpu speed is not one of them.
Also, another source, an Linux expert who ported Linux to mainframes, claimed year 2003, that 1 MIPS == 4 x86 MHz. Hence, 28.000 MIPS corresponds to 112GHz. Pick a 8 core Nehalem-EX, which runs at 2.3GHz = 8 x 2.3 GHz = 18.4GHz. But, Nehalem-EX is much faster clock for clock, than Pentium 4. Whereas 1 MIPS then, is 1 MIPS today. Nehalem-EX may be 2 times faster than one Pentium 4, at same clock speed. Then those 18.4GHz of Pentium 4 MHz, corresponds to todays 36.8GHz. You need just a few of Nehalem-EX to match 28.000 MIPS.
http://www.mail-archive.com/[email protected]/msg18587.html
You have two independent sources, who port Linux to Mainframes, or write Mainframe emulators – that states that Mainframe CPU is dog slow.
Also, IBM never publishes Mainframe benchmarks. When IBM has some good number, IBM brags about it all the time. For instance POWER7 is much faster than an Mainframe cpu, and IBM has released POWER7 benches, and brags about it all the time. (POWER7 is a good cpu, Mainframe cpus sucks).
@foobar,
See above.
It is actually 30,657 MIPS.
http://www-05.ibm.com/pt/systems/z/news/technical.pdf
According to that wikipedia article, Hercules emulation is 5-10 times slower. Also, they are predicting 3,200 MIPS for an entire 8 processor Nehalem machine. They haven’t actually measured it yet. So you need 8 x86 machines each with 8 Nehalem chips running a tight loop of hand optimized s390 assembler to match a z10.
That has been changing since z9…
and you are still quoting these z990 numbers from 2003, so you haven’t noticed… er uh chose to ignore it.
Rubish, you’re twisting the numbers and conveniently leaving facts out.
There is lots of mainframe performance info out there. You just don’t know where to look. Go check out share.org.
foobar,
I claim that software emulation is 5-10x slower than running native code. As a response, you object:
“[Actually], Hercules emulation is 5-10 times slower”.
I didnt get that. Could you explain again? Aren’t we stating the same thing?
Regarding your claim that a IBM Mainframe z10 with 64 cpus gives 30.500MIPS, and not 28.000 MIPS. Ok, let us assume that the correct number is 30.500 MIPS. This means each z10 cpu gives 30.500 / 64 = 480 MIPS.
Cofounder of emulator TurboHercules claims 8-socket Nehalem-EX is predicted to give 3.200 MIPS. This means each Nehalem-EX gives 3.200 / 8 = 400 MIPS. So we see that z10 cpu is slightly faster than Nehalem-EX. But if Nehalem-EX could run native code (instead of emulating a Mainframe) then it would be 5-10x faster. That is, 400 mips x 5 = 2000MIPS. 400 Mips x 10 = 4000 MIPS. Let us average, and say a Nehalem-EX would give 3000 MIPS per cpu (natively). Then, you need 10 Nehalem-EX to reach 30.000 MIPS.
I dont see where this calculation is wrong? But feel free to point out my errors and lecture me.
“Rubish, you’re twisting the numbers and conveniently leaving facts out.”
The other source, regarding this Linux expert. He claimed back in 2003, that compared to a single core Pentium 4, a Mainframe MIPS equals 4MHz. 1MIPS == x86 4MHz. Now, an Nehalem-EX has 8 cores, each running 2.3GHz. Then a Nehalem-EX has a total of 18.4 GHz per cpu.
Now, one P4 clock tick, does very little work compared to one Nehalem-EX clock tick. Maybe the Nehalem-EX does twice as much as work as one P4 clock tick? Then, this means that the Nehalem-EX which gives 18.4GHz, does more work than if you collected 18.4GHz of Pentium 4. In fact, you would need twice as many Pentium 4 clock ticks, to match 18.4GHz of Nehalem-EX.
So, one Nehalem-EX gives you actually 36.8 GHz worth of Pentium 4 clock ticks.
If you do the calculations, you will see that you only need a few Nehalem-EX to match 64 Mainframe CPUs.
If you spot an error, please point it out so I can correct my calculations.
In either case, we see two independent highly technical sources that claims that Mainframe CPU are dog slow. Hence, an Mainframe could NEVER consolidate several x86 servers. Actually, it is the other way around, x86 servers could instead consolidate Mainframes instead. Now I talk about cpu power. I know Mainframes have lots of help cpus, so they have good I/O. But in terms of cpu speed, they are dog slow. Now imagine if you gave x86 servers some help cpus…
Regarding IBM does not release benches, I wrote wrongly. I meant to say this: “IBM does not release Mainframe benches where they compare to other machines, such as Unix machines or x86”. Of course IBM releases numbers where they show Mainframe strengths, such as good I/O. But IBM does not compare, for instance cpu power to other machines, such as Unix or x86. IBM is afraid, becuase then it will be evident how slow IBM mainframes actually are, in terms of CPU speed.
This is obviously true (for those who are not fooled by IBM marketing) – how much money is spent on developing x86, and how much money is spent on developing IBM Mainframe cpus? How many companies are involved in each architecture? How many engineers? It would not be very smart of you, if you think that IBM’s 50(?) mainframe cpu engineers can match all cpu engineers that Intel and AMD have.
Let me quote you again. You orginally wrote this:
You are not accounting for cores/chips/processors correctly. A 64 processor z10 is actually 64 cores. An 8 socket nehalem is 64 cores. If you want per core performance, then it is 3200/64 = 50 emulated mips, and 50 * 5 = 250. So you need 120 nehalem cores by your hoakie numbers.
While we’re throwing around hoakie numbers, lets account for the other cores in the z10. Not channel cards, but the z10 cores characterized as SAPs and CFs. Since, IBM actually measured that 30,000 MIPs number, we should include the cores doing IO. For the biggest machine, that’s another 11 cores. 11 * (30,500/64) = 5200 MIPS. So we can estimate that a z10 is really capable of 35,700 MIPS.
http://www.redbooks.ibm.com/redbooks/pdfs/sg247515.pdf
Let’s not forget that z10 shipped in the beginning of 2008, and your comparing it to a brand new 2010 intel product. Then you conclude that, somehow, the mainframe is obsolete because it doesn’t keep up with today’s hardware.
It’s rumored that there will be a new mainframe this year.
See above.
Why don’t you get some updated numbers from that list? It would give you a better argument.
50? You’re guessing again. It is many more than that. I know it is hard for people to fathom large numbers like 1.5 or 2 billion transistors. At least make an educated guess.
x86 is only the holy grail for certain applications in the short term. If intel is the only supplier left of high performance processors, we’re all screwed.
foobar,
Oh, of course I meant that “software emulation is 5-10x slower than native code”. Thanx for pointing it out.
“You are not accounting for cores/chips/processors correctly. A 64 processor z10 is actually 64 cores. An 8 socket nehalem is 64 cores. If you want per core performance, then it is 3200/64 = 50 emulated mips, and 50 * 5 = 250. So you need 120 nehalem cores by your hoakie numbers.”
I didnt get that. Could you explain again? It seems that you claim that 64 Mainframe CPUs have in total: 64 cores? Then it must mean that Mainframe CPUs are single cores. I thought they were quad core?
Who (except IBM) is interested in performance per core? I am comparing one Mainframe cpu vs Nehalem-EX cpu. Not core vs core. I dont claim that Nehalem-EX core is faster than Mainframe core. (This is typical FUD from IBM: shift focus from cpu vs cpu, to something else, such as core vs core.)
Could please explain again, why an Nehalem-EX cpu is slower than a Mainframe CPU? Note that I wrote “CPU” not, core, or ALU, or registers, or whatever. Just because one part of the CPU is faster – it doesnt say anything about the entire cpu. “My car has a better ignition mechanism than your car, therefore my car is faster than yours” – plain FUD. You must compare car vs car, not some small part vs another part. No one is interested in that small part.
“While we’re throwing around hoakie numbers, lets account for the other cores in the z10. Not channel cards, but the z10 cores characterized as SAPs and CFs. Since, IBM actually measured that 30,000 MIPs number, we should include the cores doing IO. For the biggest machine, that’s another 11 cores. 11 * (30,500/64) = 5200 MIPS. So we can estimate that a z10 is really capable of 35,700 MIPS.”
Come on, this is really silly of you. You dont want to do this comparison. You would be really upset if I claimed (just like you do): “Well, the latest Nvidia card is capable of TeraFlops, therefore the Nehalem-EX server must be faster than the Mainframe server”.
Now THAT comparison would be hoakie, dont you agree? But it is ok if IBMers do this comparison, right?
BTW, I talked with another IBMer who claimed that: despite you need four POWER6 cpus to match two Intel (ordinary) Nehalem, the POWER6 is faster. Because it has higher clocked core, or something weird. I never understood his logic. It was really weird. Then he started to talk about pricing, the POWER6 software licenses would be cheaper, therefore the POWER6 is faster. I dont get it, where all IBMers find that weird stuff to say? The funny thing is, they BELIEVE it is true! :o) Even today he is convinced that POWER6 is faster than Nehalem. I couldnt talk him out of it. No matter what I said, he refused to listen. :o)
Yup, I didn’t think that you would actually look at the redbook that I linked. The big z10 machine has 4 books. Books have many chips on the MCM. 5 of them are processor chips. Each processor chip has 4 cores. There are a grand total of 80 cores in a z10. After subtracting 11 for SAPs, 2 for spares, and 3 for cores that don’t pass manufacturing tests, there are 64 cores for customers to run their favorite operating systems on.
In IBM-speak a way or a processor is a core. It’s been that way for 10 years with the i/p/z stuff. You are very quick to make claims about how bad IBM is, yet you don’t know such details? Are you making judgments based on you’re own personal biases, or the technical facts?
Why don’t you read a little about the hardware that you are bashing? Next time we can have a better argument
If you want to argue cpu vs cpu, then you need to state that up front instead of making unsubstantiated claims and then babbling about extrapolated emulation performance.
Like it or not. In the real world, outside of the desktop, hobby realm, there’s an awful lot of applications that are still priced per core. This is true for all platforms.
Could we please back up and remember what this thread is about? You made an unsubstantiated claim about a “dog slow”, and “1/10th of the speed”:
Then when I challenged you, you built an argument on a Wikipedia post that had extrapolated performance numbers. Somehow you twisted the numbers to conclude that an 8 socket nehalem machine can replace a fully populated z10.
If you would have kept your argument brief and used technical facts, I would have admitted that 4 z10 cores on a chip vs 8 Nehalem cores on a chip is probably 60%. But you chose to talk in circles about emulation and leave out important details about each machine.
I wouldn’t have used the word “hoakie” if I was serious. Remember, you started the silliness with extrapolated emulation numbers when you really wanted to compare native applications.
At this point, I really don’t believe you. I think you’re making stuff up now. Anecdotal evidence is an oxymoron. See what happens when I change a few words:
“…there are 64 cores for customers to run their favorite operating systems on.
In IBM-speak a way or a processor is a core. It’s been that way for 10 years with the i/p/z stuff. You are very quick to make claims about how bad IBM is, yet you don’t know such details? Are you making judgments based on you’re own personal biases, or the technical facts?”
Ok, this explains why the Mainframe cpus are dog slow. A Mainframe cpu with one core, vs a 8-core Nehalem-EX. So, 64 Mainframe cpus, could in theory be replaced with 8 cpus that are each, 8-core. An 8-socket Nehalem-EX server has 64 cores in total. Ergo, you need roughly 8-socket Nehalem-EX to reach 64 cores. Here we have another anecdoctical evidence that 8-socket Nehalem-EX with 64 cores, matches 64 single core Mainframe cpus, provided by you.
I dont think you claim that a cpu with one core, can match a cpu with 8-cores, do you? This would of course be silly. If it were true, you would talk about performance unheard of. That is not realistic.
Regarding the technical details about Mainframes, well, I repeat what other more knowledgeable guys claim. They are certainly much more knowledgeable than both you and me. One guy ports Linux to Mainframes and he has experience of Linux on x86 vs Linux on Mainframes, the other guy writes an Emulator for Mainframes. Certainly they know much more than both you and me, and I hardly think you claim they are wrong? That is the reason that I dont know too much about legacy dog slow Mainframe cpu. Besides, who wants to spend time learning about dog slow dinosaurs? I admit Mainframes are good at I/O, but which computer isnt given all the extra I/O hardware that Mainframe has?
“If you want to argue cpu vs cpu, then you need to state that up front instead of making unsubstantiated claims and then babbling about extrapolated emulation performance.
Like it or not. In the real world, outside of the desktop, hobby realm, there’s an awful lot of applications that are still priced per core. This is true for all platforms.”
I thought I claimed since the very first beginning that “Mainframe cpus are dog slow”? I didnt talk about cores, did I? It is you that talk about cores, not me. And also, you talk about pricing. Why do you try to shift focus away from dow slow Mainframe cpus, to cores, and to pricing? Ive never talked about cores in the first place. You did. And know you try to make it look as if I didnt talk about cpu performance? What are you trying to do? Shift focus away from cpu performance?
“Could we please back up and remember what this thread is about? You made an unsubstantiated claim about a “dog slow”, and “1/10th of the speed”: ”
Yes, I talked about Mainframe cpus being dog slow. And I provided calculations that showed that. Whereas you talks about core, and pricing, and what not.
Look, if I am wrong, then you can point out my errors in my calculations, right? You claim they are wrong, so point the errors out. Right now, you are just ducking the question. But both you and I know that Mainframe CPUs are dog slow. And I will tell this to everyone, on every site. As soon I gets the chance. I will provide links, and calculations. :o) Unless you prove me wrong of course. With hard numbers and facts. Not by ducking the question and talk about cores and pricing. I am only interested in performance of those slooooow Mainframe cpus. The fact, that IBM hides so well.
“I wouldn’t have used the word “hoakie” if I was serious. Remember, you started the silliness with extrapolated emulation numbers when you really wanted to compare native applications. ”
Look, I would be silly ÃÂf I counted a Nvidia card, when comparing a server’s performance. But it is ok, you can do a similar thing. But hey, you are an IBMer. IBM is famous for FUDing, the first to employ FUD on a wider scale, according to wikipedia. It is ok, you just follow your company policy. I have lots of proof and links that show when IBMers FUD.
“At this point, I really don’t believe you. I think you’re making stuff up now. Anecdotal evidence is an oxymoron. See what happens when I change a few words: ”
Jeez, I dont understand how you reason. Are you the same guy I discussed with? He did the same thing. Shifted focus to cores, and pricing.
What about “sunshiner”? Sun doesnt state what you claim. I am talking about IBMers FUD. You know your kin, you know that IBMers could make anything to look like anything. Of course I talking the truth. That guy, Jesper Frimann – an active IBMer, claimed that despite you need “four POWER6 to match two Nehalem the POWER6 is faster”. He said something about (dont remember the weird logic, but something in the line of) “the power6 core is faster than a Nehalem core, and the power6 core has lower pricing because it is only two cores – therefore the POWER6 is faster”.
This is similar to when IBM claims that IBM still has the TPC-C record today, because IBM is faster per core, than Sun’s current world record. I mean, come on. Who has the current TPC-C world record? IBM or Sun? It is Sun. How can IBM claim that they have the world record, because they have more tpmC/core? That is just… weird? Isnt it? Who is at the top? It is Sun. If IBM can claim they still have the world record, then IBMer Jesper Frimann can claim that despite you need four POWER6 to match two 6-core Nehalem, the POWER6 is faster (because of fewer cores, and lower pricing). It is exactly the same line of strange logic. Just like your logic. Right? :o)