OSDev.org

The Place to Start for Operating System Developers
It is currently Mon Nov 20, 2017 11:21 am

All times are UTC - 6 hours




Post new topic Reply to topic  [ 13 posts ] 
Author Message
 Post subject: Buying new computers
PostPosted: Thu Jan 19, 2017 3:11 pm 
Offline
Member
Member
User avatar

Joined: Wed Jun 17, 2015 9:40 am
Posts: 426
Location: Athens, Greece
Hi,


A company selling electronics went bankrupt last year and they will be now selling their stock in low prices. I think I should invest in this opportunity to buy some x86 computers to test my OS (in a couple of years in the future).

I'm sure I'll eventually want at least one computer with multiple NUMA domains. I'm also sure UEFI is a must. But what other properties should a test machine have, in your opinion? What kind of caches, CPU models, what other hardware, etc?

Thanks in advance. :-)


Regards,
glauxosdever

_________________
Before implementing any piece of software, make sure you have designed it to be extendable. Backporting new features into old code is not always easy.


Top
 Profile  
 
 Post subject: Re: Buying new computers
PostPosted: Thu Jan 19, 2017 3:28 pm 
Offline
Member
Member
User avatar

Joined: Tue Aug 02, 2016 1:52 pm
Posts: 286
Location: East Riding of Yorkshire, UK
Instead of focusing on individual machines, maybe it would be better if you bought a lot of machines with components from various different manufacturers/vendors and from different time periods.

_________________
com.sun.java.swing.plaf.nimbus.InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMaximizeButtonWindowNotFocusedState
Compiler Development Forum


Top
 Profile  
 
 Post subject: Re: Buying new computers
PostPosted: Thu Jan 19, 2017 3:42 pm 
Offline
Member
Member
User avatar

Joined: Wed Jun 17, 2015 9:40 am
Posts: 426
Location: Athens, Greece
Hi,


Yes. My point is that I'd need different machines, each with different properties. But what should these different properties be? What are your suggestions?

To illustrate the point, for NUMA I'm thinking of a non-NUMA computer, a NUMA one with two domains and low NUMA ratio, a NUMA one with more domains and higher NUMA ratio, etc.


Regards,
glauxosdever

_________________
Before implementing any piece of software, make sure you have designed it to be extendable. Backporting new features into old code is not always easy.


Top
 Profile  
 
 Post subject: Re: Buying new computers
PostPosted: Thu Jan 19, 2017 5:30 pm 
Offline
Member
Member
User avatar

Joined: Fri Mar 07, 2008 5:36 pm
Posts: 2072
Location: Bucharest, Romania
The more reasonable thing to do is to figure out what the requirements for your OS are before you go out and buy testing equipment. The requirements will differ depending on the problem you want to solve so a question like "What do you think my requirements should be, as far as hardware is concerned?" is really impossible to answer without further information.

_________________
"Computers in the future may weigh no more than 1.5 tons.", Popular Mechanics (1949)
[ Project UDI ]


Top
 Profile  
 
 Post subject: Re: Buying new computers
PostPosted: Thu Jan 19, 2017 8:04 pm 
Offline
Member
Member
User avatar

Joined: Sat Jan 15, 2005 12:00 am
Posts: 8148
Location: At his keyboard!
Hi,

glauxosdever wrote:
I'm sure I'll eventually want at least one computer with multiple NUMA domains. I'm also sure UEFI is a must. But what other properties should a test machine have, in your opinion? What kind of caches, CPU models, what other hardware, etc?


For CPUs; I try to have one computer for each CPU model for each CPU manufacturer that the OS is supposed to support (e.g. "80486, Pentium, Pentium Pro, Pentium II, Pentium III, Pentium 4, ..." plus similar for AMD, VIA, Cyrix, IBM, Transmeta, NSC, SiS). When considering purchasing an old computer I look at where the biggest hole is and aim for "middle of the hole" (e.g. if I didn't have Pentium II, Pentium III or Pentium 4; then I'd try to get Pentium III because it's in the middle).

For new computers; I use my 2 newest computers (one for Windows/games and the other for "LAN server" and OS development); and when I get a new computer I'll replace one of the computers I use (whichever is oldest) and demote the old computer to "test machine" status. If I'm replacing the server I'll replace it with server parts (ECC, Xeon or Opteron, etc; and be very tempted to go for NUMA, and lots of slower CPUs rather than fewer faster CPUs) and if I'm replacing the other computer I'll go for "mid-range games machine" (fewer faster CPUs).

For video cards I try to stick with integrated Intel or AMD (in the hope of being able to get documentation if I ever want to write native drivers). Everything else doesn't matter much; either because you end up with a range of different motherboards (to suit the range of different CPUs) and therefore a range of different devices built into the motherboards, or because it's something (PCI card, hard disk, etc) that can be added/moved/replaced later.

The other thing I do is stick with desktop and server systems. Laptops tend to be more expensive, less flexible (for changing parts) and harder to support (due to a greater need for power management and ACPI); and a laptop's battery has a "too short" lifetime (typically the battery won't hold a charge after about 3 years).


Cheers,

Brendan

_________________
For all things; perfection is, and will always remain, impossible to achieve in practice. However; by striving for perfection we create things that are as perfect as practically possible. Let the pursuit of perfection be our guide.


Top
 Profile  
 
 Post subject: Re: Buying new computers
PostPosted: Thu Jan 19, 2017 10:27 pm 
Offline
Member
Member
User avatar

Joined: Sun Dec 25, 2016 1:54 am
Posts: 204
If you got the cash to pick and choose then I would actually concentrate on peripheral devices...

If you can pick up a few different systems with NVidia GPUs, some with ATI then grab 'em.

Are there servers with scsi interfaces? USB-3?

What I am saying is get a stash of peripherals you can port drivers for your OS and test on.

As for NUMA domains - if these guys have multi-domain servers then snatch em up but only if you got the power outlets to support them. Some of those servers will burn your house down if you plug 'em in in your bedroom :wink:

Don't forget serial cards, multiplexers, and that old vt100 sitting in the corner... nothing beats old kit and the smell of warm oil filled capacitors to distract you from the x-rays from the CRT.

oooo and if they have network/serial controlled power strips - get em - fun as hell - amaze your friends and neighbors. Oh and if they have environment sensors - power, temp, air pressure, water... if they were a good server room supplier they will have em... grab em.

cheers

_________________
Plagiarize. Plagiarize. Let not one line escape thine eyes...


Top
 Profile  
 
 Post subject: Re: Buying new computers
PostPosted: Fri Jan 20, 2017 6:03 am 
Offline
Member
Member
User avatar

Joined: Wed Jun 17, 2015 9:40 am
Posts: 426
Location: Athens, Greece
Hi,


Love4Boobies wrote:
The more reasonable thing to do is to figure out what the requirements for your OS are before you go out and buy testing equipment. The requirements will differ depending on the problem you want to solve so a question like "What do you think my requirements should be, as far as hardware is concerned?" is really impossible to answer without further information.
I actually would like to optimise for using all resources in the most efficient way. So I probably need different combinations of memory and cache sizes, different combinations of CPUs number and speed, different combinations of NUMA properties, etc. In other words, I'd like the OS to be as efficient as possible on all supported hardware combinations.

Brendan wrote:
For CPUs; I try to have one computer for each CPU model for each CPU manufacturer that the OS is supposed to support (e.g. "80486, Pentium, Pentium Pro, Pentium II, Pentium III, Pentium 4, ..." plus similar for AMD, VIA, Cyrix, IBM, Transmeta, NSC, SiS). When considering purchasing an old computer I look at where the biggest hole is and aim for "middle of the hole" (e.g. if I didn't have Pentium II, Pentium III or Pentium 4; then I'd try to get Pentium III because it's in the middle).
Although I'd like to get a handful of somewhat old computers too, I'm planning to get some new ones.

Brendan wrote:
For new computers; I use my 2 newest computers (one for Windows/games and the other for "LAN server" and OS development); and when I get a new computer I'll replace one of the computers I use (whichever is oldest) and demote the old computer to "test machine" status. If I'm replacing the server I'll replace it with server parts (ECC, Xeon or Opteron, etc; and be very tempted to go for NUMA, and lots of slower CPUs rather than fewer faster CPUs) and if I'm replacing the other computer I'll go for "mid-range games machine" (fewer faster CPUs).
Noted. I will aim to get something more "server-like" equivalent to yours since it requires more work from the OS developer to optimise for it. But what NUMA properties combinations would you suggest? And how many CPUs of what speed?

Brendan wrote:
For video cards I try to stick with integrated Intel or AMD (in the hope of being able to get documentation if I ever want to write native drivers). Everything else doesn't matter much; either because you end up with a range of different motherboards (to suit the range of different CPUs) and therefore a range of different devices built into the motherboards, or because it's something (PCI card, hard disk, etc) that can be added/moved/replaced later.
That was something I was also thinking of.

Brendan wrote:
The other thing I do is stick with desktop and server systems. Laptops tend to be more expensive, less flexible (for changing parts) and harder to support (due to a greater need for power management and ACPI); and a laptop's battery has a "too short" lifetime (typically the battery won't hold a charge after about 3 years).
Unfortunately, my house is too small to have desktop machines, so I can't really avoid laptops... :-(

dchapiesky wrote:
If you got the cash to pick and choose then I would actually concentrate on peripheral devices...
Peripherals actually are also something I should think about.

dchapiesky wrote:
Don't forget serial cards, multiplexers, and that old vt100 sitting in the corner... nothing beats old kit and the smell of warm oil filled capacitors to distract you from the x-rays from the CRT.
I actually don't really care that much about that old hardware. I'll rather concentrate on something that will be used more in the future.

dchapiesky wrote:
oooo and if they have network/serial controlled power strips - get em - fun as hell - amaze your friends and neighbors. Oh and if they have environment sensors - power, temp, air pressure, water... if they were a good server room supplier they will have em... grab em.
Not sure I should write drivers for these specialised peripherals myself.


Regards,
glauxosdever

_________________
Before implementing any piece of software, make sure you have designed it to be extendable. Backporting new features into old code is not always easy.


Top
 Profile  
 
 Post subject: Re: Buying new computers
PostPosted: Fri Jan 20, 2017 6:47 am 
Offline
Member
Member
User avatar

Joined: Fri Mar 07, 2008 5:36 pm
Posts: 2072
Location: Bucharest, Romania
glauxosdever wrote:
Love4Boobies wrote:
The more reasonable thing to do is to figure out what the requirements for your OS are before you go out and buy testing equipment. The requirements will differ depending on the problem you want to solve so a question like "What do you think my requirements should be, as far as hardware is concerned?" is really impossible to answer without further information.
I actually would like to optimise for using all resources in the most efficient way. So I probably need different combinations of memory and cache sizes, different combinations of CPUs number and speed, different combinations of NUMA properties, etc. In other words, I'd like the OS to be as efficient as possible on all supported hardware combinations.


Well, optimization isn't a real goal; it's a means to an end. If it's to provide any value, your OS presumably strives to solve some problem that you can state explicitly. If you don't define your problem, you won't be able to implement a coherent system because your design choices will be arbitrary and thus often conflict with one another. You can't optimize for everything since goals themselves conflict with one another in varying degrees so you will need to make appropriate trade-offs based on your requirements and constraints. Furthermore, I wouldn't use the word "optimal" because that's not realistic. Some problems are intractable (e.g., scheduling is NP-complete) and others are uncomputable (e.g., optimal power usage would require solving the halting problem).

_________________
"Computers in the future may weigh no more than 1.5 tons.", Popular Mechanics (1949)
[ Project UDI ]


Last edited by Love4Boobies on Fri Jan 20, 2017 7:02 am, edited 1 time in total.

Top
 Profile  
 
 Post subject: Re: Buying new computers
PostPosted: Fri Jan 20, 2017 6:57 am 
Offline
Member
Member
User avatar

Joined: Wed Jun 17, 2015 9:40 am
Posts: 426
Location: Athens, Greece
Hi,


Concerning the use of available resources, scalability is the goal. A scalable OS should be able to adapt to multiple combinations of different hardware components and capabilities.

Mostly, I'd prefer looking to get some components that are most likely to be used in the future, so users will be able to conveniently use my OS on their computers.


Regards,
glauxosdever

_________________
Before implementing any piece of software, make sure you have designed it to be extendable. Backporting new features into old code is not always easy.


Top
 Profile  
 
 Post subject: Re: Buying new computers
PostPosted: Fri Jan 20, 2017 12:54 pm 
Offline
Member
Member
User avatar

Joined: Sun Dec 25, 2016 1:54 am
Posts: 204
glauxosdever wrote:
dchapiesky wrote:
oooo and if they have network/serial controlled power strips - get em - fun as hell - amaze your friends and neighbors. Oh and if they have environment sensors - power, temp, air pressure, water... if they were a good server room supplier they will have em... grab em.

Not sure I should write drivers for these specialised peripherals myself.


I was having fun thinking about the candy store - however these items can be useful in a development environment.... for example:

serial multiplexor connecting N serial ports from N target test systems to your development system.

power controller for N target test systems controlled by your development system.

Continuous Integration while you sleep - test systems powered up - tested - recorded - powered down one by one.

If you have the chance to do it then it is fun as hell. If only for the novelty.

cheers

_________________
Plagiarize. Plagiarize. Let not one line escape thine eyes...


Top
 Profile  
 
 Post subject: Re: Buying new computers
PostPosted: Sat Jan 21, 2017 8:19 am 
Offline
Member
Member
User avatar

Joined: Wed Jun 17, 2015 9:40 am
Posts: 426
Location: Athens, Greece
Hi,


Unfortunately I didn't anything that would be of much interest to me. I'll keep your advice, along with research I did, for another time.

I also looked more thoroughly at the specs of the machines in my house. Maybe you could give me some more advice based on that.

First Laptop:
Firmware: BIOS
CPU: Intel Core 2 Duo, 2.16 GHz
RAM: 2 GiB
Caches: 64 KiB, 2 MiB
NUMA: No (1 domain)
USB: UHCI, EHCI
GPU: NVIDIA G72M

Second Laptop:
Firmware: BIOS
CPU: AMD Turion 64 X2, 800~1900 MHz
RAM: 2 GiB
Caches: 64 KiB, 512 KiB
NUMA: No (1 domain)
USB: OHCI, EHCI
GPU: AMD/ATI Radeon HD 2600

Third Laptop:
Firmware: UEFI
CPU: Intel Pentium N3540, 2.16 GHz
RAM: 4 GiB
Caches: 2 MiB
NUMA: No (1 domain)
USB: xHCI
GPU: Intel HD Graphics


Regards,
glauxosdever

_________________
Before implementing any piece of software, make sure you have designed it to be extendable. Backporting new features into old code is not always easy.


Top
 Profile  
 
 Post subject: Re: Buying new computers
PostPosted: Sat Jan 21, 2017 9:19 am 
Offline
Member
Member
User avatar

Joined: Sat Jan 15, 2005 12:00 am
Posts: 8148
Location: At his keyboard!
Hi,

glauxosdever wrote:
Maybe you could give me some more advice based on that.


The first thing I noticed is that none of these computers support hyper-threading/SMT. Hyper-threading (like NUMA) takes some optimisations to get the most out of it, but it's more common than NUMA and doesn't add much (anything?) to the cost of a computer.

The other thing I noticed is that the newest computer is Intel; which means that I'd be wanting to go for "newer AMD" next.

My advice would be to wait until AMD releases Zen; partly because it will support SMT, partly because it'll support newer instructions that your existing computers don't, partly because some models will have "high bandwidth memory" built in (which will be fun to optimise for), partly because it'll support AMD's "encrypted RAM" (which will be fun to support too); and also because I suspect AMD's prices will be "very competitive" (in an attempt to regain market share).


Cheers,

Brendan

_________________
For all things; perfection is, and will always remain, impossible to achieve in practice. However; by striving for perfection we create things that are as perfect as practically possible. Let the pursuit of perfection be our guide.


Top
 Profile  
 
 Post subject: Re: Buying new computers
PostPosted: Sat Jan 21, 2017 10:41 am 
Offline
Member
Member
User avatar

Joined: Wed Jun 17, 2015 9:40 am
Posts: 426
Location: Athens, Greece
Hi,


Apart from SMT, newer instructions, high-bandwidth memory, and encrypted RAM, what could I also look at (in other models)?

Edit: I'm not talking only about the CPU, but the rest of hardware too.


Regards,
glauxosdever

_________________
Before implementing any piece of software, make sure you have designed it to be extendable. Backporting new features into old code is not always easy.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 13 posts ] 

All times are UTC - 6 hours


Who is online

Users browsing this forum: No registered users and 7 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group