Jump to content

There's been this huge revolution to move everything to computers that you don't own (cloud) in recent years. Yet, we still see IBM developing huge and expensive mainframe systems.

So my main question would be: What are these modern mainframes used for? And what is it that they do that can't be done with say AWS for Google Cloud or Azure.

 

Also, whenever people talk about mainframe, especially from the programming point of view, people tend to say the mainframes are programmed in COBOL. How true is that in say 2019?

Suppose I have a hypothetical task that needs a mainframe, can I program it in say C++ or Python or Java?

Link to comment
https://linustechtips.com/topic/1115045-about-modern-mainframes/
Share on other sites

Link to post
Share on other sites

19 minutes ago, Trinopoty said:

There's been this huge revolution to move everything to computers that you don't own (cloud) in recent years. Yet, we still see IBM developing huge and expensive mainframe systems.

So my main question would be: What are these modern mainframes used for? And what is it that they do that can't be done with say AWS for Google Cloud or Azure.

 

Also, whenever people talk about mainframe, especially from the programming point of view, people tend to say the mainframes are programmed in COBOL. How true is that in say 2019?

Suppose I have a hypothetical task that needs a mainframe, can I program it in say C++ or Python or Java?

Cloud services are often hosted on "mainframes"

And as to programming, it depends on the mainframe. I haven't touched COBOL (yes, I was a COBOL programmer) in a long time, but I've worked with IBM Mainframes that worked under Assembly.

NOTE: I no longer frequent this site. If you really need help, PM/DM me and my e.mail will alert me. 

Link to post
Share on other sites

12 minutes ago, Radium_Angel said:

Cloud services are often hosted on "mainframes"

And as to programming, it depends on the mainframe. I haven't touched COBOL (yes, I was a COBOL programmer) in a long time, but I've worked with IBM Mainframes that worked under Assembly.

I know what you mean by "mainframe".

I'm taking about mainframes like the IBM Z. Real mainframe not consumer hardware (you get the point) put into a server rack.

Link to post
Share on other sites

I get what you're saying. It's the traditional idea of a mainframe.

But, my question encompassed more of why they are still being innovated upon. Why is it that IBM is spending billions developing new mainframe machines and why people are buying them at millions?

Handling a spreadsheet or such is not a big deal. There must be some tasks that absolutely needs a mainframe.

What is it that compels people to invest billions into it if it's a legacy technology?

 

I hear that finance industry is the biggest user of mainframe. What is it that they do that cannot be moved into AWS,etc? And what are the reasons those tasks cannot be moved?

Link to post
Share on other sites

1 hour ago, Trinopoty said:

I'm taking about mainframes like the IBM Z

So was I.

When your uptime must be measured in years/decades, you use a mainframe.

Some applications are so complex (think air traffic control) that the cost to try to migrate it to modern gear/languages, far outstrips the risk of staying with known hardware/software.

 

NOTE: I no longer frequent this site. If you really need help, PM/DM me and my e.mail will alert me. 

Link to post
Share on other sites

Imagine you are a bank computer in charge of keeping track of the balances in 2 persons' accounts. Person A can call you up and tell you that they've paid Person B $10. You then subtract $10 from Person A's account and add $10 to Person B's account. This is easy, you only need to keep track of two numbers and with only two people there aren't that many transactions happening. 

 

Now instead of 2 accounts, it's 100 accounts. You still only have to keep track of 100 numbers but now you also have 100 people who could call at any moment to inform you of a transaction. You can only really listen to a few people at a time without getting overwhelmed so you enlist the help of some friends. Together you can handle all the incoming transactions. You must constantly compare notes to make sure you all have the correct balances for each account as they are updated, but with only a few people working together its doable.

 

Now instead of 100 accounts, it's billions of accounts with billions of transactions per day. You could find more friends but there's no way you could manage to work together and agree on the correct balance for every account. Also if you fail the entire financial industry collapses.

 

Adding more servers, i.e. friends, does not help when you need a massive amount of throughput(input->compute->output) with zero error tolerance. They simply cannot communicate with each other fast enough. This is one reason to use a mainframe. The other's being utmost security, reliability, and absolutely zero downtime.

 

Link to post
Share on other sites

Modern mainframes run Java. Not to many people still doing Cobol. 

Can you run your jobs in cloud compute? Sure, but how many processing threads do you need? how many operations per second do you need? How many rows does your database have? How much will it cost to run that in the cloud vs what IBM charges to deploy a shiny new z15? You might find that mainframes are still competitive solutions for the right workloads. Cloud's #1 feature is easy immediate growth and converting the payment from capital expenses to operational expenses. Project your costs for 5-15 years and you might find that onprem is still a solid option unless you are switching to a SaaS product of some kind. 

Intel 11700K - Gigabyte 3080 Ti- Gigabyte Z590 Aorus Pro - Sabrent Rocket NVME - Corsair 16GB DDR4

Link to post
Share on other sites

So basically what you're telling me is:

a) Mainframes are still used where migrating is a difficult thing to do.

b) Where horizontal scaling is difficult and eventual consistency is not acceptable. Everything must always stay consistent. And the volume of data and operations on those data is massive.

 

But, about point 'b', you can just deploy a regular (x86-64) server with similar performance characteristics, RAM and CPU, right?

Link to post
Share on other sites

With latest gen distributed software like K8s, 24/7 datacenter staffing, and the best engineers you can hire maybe you can get close. I have never seen a 'regular' setup that can challenge IBM in reliability, availability, and serviceability. 

You gotta consider what your stakes are. if the cost of failure is "payroll wont run for millions of people" or "all flights are cancelled and we have no ETA on getting them going" then you should definitely be doing business on a mainframe. 

Intel 11700K - Gigabyte 3080 Ti- Gigabyte Z590 Aorus Pro - Sabrent Rocket NVME - Corsair 16GB DDR4

Link to post
Share on other sites

16 hours ago, Trinopoty said:

But, about point 'b', you can just deploy a regular (x86-64) server with similar performance characteristics, RAM and CPU, right?

No not really. They are fundamentally different in design and purpose, and this is evident in the specs. 

 

For the latest IBM z15 processor:

- 12 cores @ 5.2Ghz

- L1 cache 128KB per core

- L2 cache 4MB per core

- L3 cache 256MB shared

- L4 cache 960MB shared

 

There is no x86 processor that can match this. The mainframe processors are all about getting data in and getting data out with a limited but robust instruction set. Hence the high clock speed and large memory caches. This is different from an x86 processor which is more general use and has a massive instruction set, and its strength is doing many complex computations with the same segment of data. Furthermore, you can install dozens of z processors into one mainframe. I believe the max number of x86 processors in one server is 8. Additionally you can hot swap a processor in a mainframe, try doing that with a server.

Link to post
Share on other sites

16 hours ago, harryk said:

No not really. They are fundamentally different in design and purpose, and this is evident in the specs. 

 

For the latest IBM z15 processor:

- 12 cores @ 5.2Ghz

- L1 cache 128KB per core

- L2 cache 4MB per core

- L3 cache 256MB shared

- L4 cache 960MB shared

 

There is no x86 processor that can match this. The mainframe processors are all about getting data in and getting data out with a limited but robust instruction set. Hence the high clock speed and large memory caches. This is different from an x86 processor which is more general use and has a massive instruction set, and its strength is doing many complex computations with the same segment of data. Furthermore, you can install dozens of z processors into one mainframe. I believe the max number of x86 processors in one server is 8. Additionally you can hot swap a processor in a mainframe, try doing that with a server.

Well those are definitely some things you can't do with any x86 I've heard of.

I'm beginning to understand the technical and functional differences a bit more clearly now. They don't teach you these in college you know.

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×