So I’m headed into multithreading and want to put as many threads up as possible. I am considering buying the system below and would appreciate any experiences or guidance on the environment. I cannot be the first to tread this path but I couldn’t find anything on discourse that covers this specific topic.
This is NOT a coding question.
operating system to be loaded : Ubuntu 18.04 lts BUT would consider others if prudent.
the machine spec.
HP Z600 Workstation
1 x 6C Xeon X5675 3.06Ghz 12MB 6.40GTs
4 x 16GB PC10600R Modules (64GB)
Samsung 1TB 6GBPS SSD
GTX1660 Ti w/6GB Graphics Card
How much does it cost?
This CPU does not have avx.
The RAM, while plentiful, is ddr3.
Something modern like a Ryzen 3600 (also 6-core) would be much faster. If it isn’t very cheap, I’d go for at least a CPU with avx.
Edit: a quick search suggests it’s about $85. That is pretty cheap.
If possible, try to get a cpu with AVX2. You did not mention the type of work you plan to do with it. Do you need a lot of slow threads? Fewer but faster threads? Maybe something with high memory bandwidth and a lot of PCIe lanes.
You need to give an approximate budget and more detailed work loads that you intend to run on the machine to get good answers. For example 64 GB ram is quite high unless you have some specific workloads in mind, GPU is irrelevant unless you think about GPGPU or gaming etc.
As a general comment, for CPUs, one in the AMD Ryzen series is definitely what I would look at for a new machine (unless you want ridiculous thread counts like the thread rippers have).
@Iulian.Cioarca @kristoffer.carlsson @Elrod
thank you all for such a great response. I kept the whole thing vague as I haven’t really spec’d the idea out yet and wanted some general feed back which I got and it’s EXCELLENT. Thanks so here are my responses
the system will be just to play around with Julia and so my budget is $500 all in.
I hadn’t heard about AVX or AVX2 so that was an eye opener. Thanks for the heads up.
type of work?
nothing really specific BUT I would like to examine vector space models pertaining to text processing. I just wanted to get a feel for how to break up a task into smaller ones and hand off the processing to cores. I would also like to represent complex data sets graphically.
I will look into building a Ryzen 3600 system but I might have to bump my budget and reduce the ram.
Just some additional thoughts: If you are looking for raw performance, there is nothing better than Ryzen/Threadripper at the moment. Ryzen still beats everything in terms of price to performance.
You could try your luck for a good deal on some used xeons (something like a relatively recent E5), but that of course depends on what’s available at your location.
In your price range, your best bet is probably a ryzen 3600 (or a 2600 from last gen if you don’t want to spend as much money. I guess they would be pretty similar in price to performance, I would consider buying one for around 70$ less than the 3600). Another option would be hunting for a first or second gen threadripper, but I expect in price to performance the Ryzen 3600 would be still ahead.
You should also consider the hardware you have currently available. It would probably make sense to wait a bit and save more money if you have something more recent than an Intel skylake right now.
I’d slowly build up to the system you want, rather than buy something old. Whether you go Intel or AMD, get the newest CPU (or, one generation back) and reasonable motherboard first, a decent hard drive and 16 or 32GB of RAM. After that, you can incrementally add on as your budget allows.
I’ve had good luck with buying used parts on Ebay and B&H, factory refurbished Corsair fans from Amazon, but I’m not sure I’d go with an entire system
Hi @daniel thanks for the considered advice. Before I got the heads up on AVX2 ( new to me ) I was looking at
https://www.youtube.com/watch?v=Zty_d33RvNs as a baseline server. Really it would be a playground for me to learn Julia and I wanted to examine vector space models. I also am going to load up a jetson nano to experiment with. I like the look of the ebay things but if I can’t get AVX2 going seems to me I would be tilting at the wrong windmill. ALL my tech is from the early 1820’s as I tend to run it into the ground. I wander down the linux distros until lubuntu or Dsl chokes. I was drawn by the 64gb of ram and HOPED that the number of cores would allow me to play with Julia. I suppose I have to save up for what you ALL are suggesting, a REAL Ryzen machine. Thanks again
thanks @randyzwitch sound advice. I am a cheapskate of the first order and so new is something I am resistant to BUT I do understand the rationale. I’m picking the Ryzen 3600 and looking into how to build out from there. I’ll concentrate on 16gb ram first BUT make sure that I can populate up should I find that I need to build in memory models ( I love doing them). I’m going to hit the ebay hard next year and see what I can find. thanks so much for taking the time.
Depending on the definition of “play around”, any recent (< 5yrs) computer should work for that. Especially with an SSD, which most recent systems have, or it is quite cheap to upgrade.
$500 (in the US) should get you a nice brand new system with a Ryzen 5 3600, a bit of RAM (32 Gb, you can expand later), an SSD, a basic graphics card (just because one is needed for display, nothing fancy), a reasonable motherboard (no need to go overboard with this either, a B450 is more than enough), and a non-fancy but servicable case, especially if you are willing to put it together.
Hi @Tamas_Papp thank you so much for the guidance. I am trying to keep it vague as I haven’t really got a feel for what I want to do. It’s the old chicken/egg thing. I DO know that I want to get going in Julia and that the most interesting topic to me is breaking big tasks into smaller one. This is NOT a production system, it’s just for my use only. I have always built my own machines, I am cheap, so putting together a B450 with 3600 would be fun. Thank you so much for narrowing this down for me,
I was looking at
HP Z600 Workstation /
1 x 6C Xeon X5675 3.06Ghz 12MB 6.40GTs/
32GB PC10600R (4 x 8GB)
but it wouldn’t have AVX2, which this wonderful forum clued me into, and thus my learn curve continues. Have an excellent New Year.
FWIW, I don’t think that there is anything really specific to Julia to consider here, especially for this budget.
You need a decent “budget commodity workstation”, which will work fine with Julia, and also other applications. Julia requires nothing special, compared to other computational tasks.
Two things: First, if this is “just to play around with Julia” then you shouldn’t worry too much about getting highly performant hardware. The difference on a majority of things is not going to be noticeable between a high-end processor and a mid-range one of the same generation. Second, if you are building your own system, I recommend using https://pcpartpicker.com/. It definitely simplifies the process.
The Ryzen 3600 is a great CPU, but if you’re price conscious, a used Ryzen 2600 is also a good CPU and very cheap. It uses the same socket as the 3600, so you can always pick up a used 3600 for cheap next year if you want and upgrade.
thank you @Mason @Tamas_Papp and everyone else who helped me on this topic. Happy new year to all AND let the adventure continue. I am EXCITED to be learning a new language.
So this is where I am right now given you excellent feedback.
Not interested in SPEED just Julia NON AVX2 functionality.
In this scenario I would just be buying as many cores and memory as I could afford and seeing how Julia handles it. so that’s $500 ( ebay ) for.
HP Z600 WorkStation
2 x Quad Core Intel Xeon X5560 2.80Ghz
AM interested in SPEED and Julia AVX2 functionality
Ryzen 5 3600 OR Ryzen 2600 ( if suited)
RAM 32 Gb
I think this is the synopsis of the advice given. I like the sound of the B450 approach as it seems to have the future build into it BUT the extra ram of the HP Z600 WorkStation would allow me to mess around with the memory model of the Julia environment, which is something I am interested in.
Again thank you to all who took the time. I will mark this as my chosen solution BUT, obviously, it’s the work of all of you fine people.
It may be worthwhile to consider that the raw speed of the processor is rarely realized in actual computations. A lot of memory and large caches are a must.
I have refined down what I want to discover about Julia using one of the approaches above. I would like to experiment with the apportioning of workloads into smaller units. It’s really the functionality I am looking to understand initially. Once I have the code working I can then consider putting more money into it. As an example of one of my initial goals I want to sample a message flow, determine the message type and start up a worker to handle the message type. Then another different message type comes in and another worker is started in another core. So this process would continue finding cores with the least amount of load. I also want to investigate memory models hence my interest in the 48gb ram system. Right now speed of processor is not my main goal but understanding HOW julia works IS. I am concerned that I would not be having the advantages of the latest features of the Ryzen range BUT I can’t budget for 48gb of ddr4
Sorry for repeating myself, but going with the ebay system is never worth it. AMD just announced their Ryzen 1600-AF, which is basically a 1600 on 12nm. The naming is a little bit weird as it implies first generation Ryzen, but it’s actually 2019 hardware roughly on par with a 2600 (https://www.gamersnexus.net/hwreviews/3547-amd-r5-1600-af-cpu-review-best-cpu-under-100), all for an incredible price of 85$ for a 6 core cpu.
I just clicked something together https://pcpartpicker.com/list/cWMTrV, that system would be around 30% faster (multicore, probably even more in single core), costs less (add any case and video card, bonus points if you get some of the hardware used) and has warranty.
I didn’t check everything carefully, you could probably get a better cooler for the price, this is just meant as a rough guideline on what’s available.
thank you so much for taking the time with pcpartpicker I DID take your advice first time through I promise but the memory going from 32gb to 96gb blew my budget. It’s not just the price of the CPU it’s all the other stuff that surrounds it. As I said it’s NOT the speed it’s the cores,threads, lashings of memory. I do understand what you are saying, and thanks again for the pcpartpicker, but I have to address the dual goals of parallel functionality and memory management investigation. I WILL go back to pcpartpicker and try again though.
I will be repeating myself too: you don’t need 64Gb for that. Almost anything reasonable will do for learning Julia, experimenting with threads, and similar. For example, a second-hand laptop (preferably <5 yrs old), a desktop that most companies would routinely get rid off and sell for cheap, etc, etc.
Trying to max out ram on a tight budget makes very little sense. It’s like putting a super-light carbon crankset on a cheap bike you use for grocery shopping: technically it will shave off some weight, but use up most of your budget and ultimately mean little in practice.
Since you are typing this on something presumably you may have access to a computer already. Unless that is ancient, I would just use it initially and save up some money. Getting a new computer for computational purposes with a budget of $500 is not really a good idea, it’s the opposite of a sweet spot.