Page 1 of 1
Buying new computers
Posted: Thu Jan 19, 2017 3:11 pm
by glauxosdever
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
Re: Buying new computers
Posted: Thu Jan 19, 2017 3:28 pm
by matt11235
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.
Re: Buying new computers
Posted: Thu Jan 19, 2017 3:42 pm
by glauxosdever
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
Re: Buying new computers
Posted: Thu Jan 19, 2017 5:30 pm
by Love4Boobies
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.
Re: Buying new computers
Posted: Thu Jan 19, 2017 8:04 pm
by Brendan
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
Re: Buying new computers
Posted: Thu Jan 19, 2017 10:27 pm
by dchapiesky
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
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
Re: Buying new computers
Posted: Fri Jan 20, 2017 6:03 am
by glauxosdever
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
Re: Buying new computers
Posted: Fri Jan 20, 2017 6:47 am
by Love4Boobies
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).
Re: Buying new computers
Posted: Fri Jan 20, 2017 6:57 am
by glauxosdever
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
Re: Buying new computers
Posted: Fri Jan 20, 2017 12:54 pm
by dchapiesky
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
Re: Buying new computers
Posted: Sat Jan 21, 2017 8:19 am
by glauxosdever
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
Re: Buying new computers
Posted: Sat Jan 21, 2017 9:19 am
by Brendan
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
Re: Buying new computers
Posted: Sat Jan 21, 2017 10:41 am
by glauxosdever
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