Building a machine for research codes, several questions

In summary: SSD.2) CPUs are important, but not as important as RAM. With recent advancements in multi-core processors, you can get by with a lower end processor if you are not doing heavy multitasking or graphics programming. 3) Graphics cards are important for graphics programming, but not as important as RAM or CPUs. 4) I would not recommend getting a graphics card specifically for graphics programming.
  • #1
Lyuokdea
154
0
I'm fairly experienced with computer hardware and software, but I've been out of the game for awhile in terms of buying new machines. I'm looking to buy/build a computer for academic work (computational astrophysics). I have about $2000 to spend, and I really want to maximize the power that this machine has. Secondly, several of my codes produce GBs of data at a time, while the largest runs will be submitted to another beowulf cluster, I will need at least a TB of HD space in order to do small simulations on this rig.

If there is a good company that caters to academic needs (fast/large HDs), I could go that way and buy a rig directly from them, otherwise I will probably be looking to build my own to get the right components in. I will be running some variant of Linux on this machine.

Questions:

1.) My first thought is to get plenty of hd speed and size into this machine, because in common experience hd slowdowns are where you get the majority of second to minute pauses that slow you down during the day. Thus I've thought about working a two prong approach where I set up a raid 0 array of two solid state HDs as the internal HDs for the system, and then have a raid 1 array (for data security), on two large drives as an external attachment.

2x http://www.newegg.com/Product/Product.aspx?Item=N82E16820231221
1x http://www.newegg.com/Product/Product.aspx?Item=N82E16822136281

obviously, that's throwing away a lot of money there, but, as i said, my simulations drop a lot of data, and who cares what processor you have if it's always waiting to write the results to a disk.

I've never worked with raid arrays though, it appears that most high end motherboards nowadays support RAID setups natively. Does that mean that I won't need an additional raid controller for the internal setup? Or does that simply mean that the motherboard supports the addition of a raid controller?

2.) What are the best CPUs in terms of processing ability right now? It looks like Intels are back on top...and there are both Duo and quad processors out there for consumption.

http://www.newegg.com/Product/Product.aspx?Item=N82E16819115130

I assume most codes I run (personal C/C++ codes) aren't going to be optimized for multiprocessors, but this should allow me to run 3 of them at the same time without noticing too much of a performance kill when I'm using my computer right (the scheduler would have them all running 100% on one CPU, which should still let the system be usable for me, depending on how gunked up the memory gets, correct?) The question is, would I be better off getting a faster 2 core system like this:

http://www.newegg.com/Product/Product.aspx?Item=N82E16819115036

I will probably also put 8GBs of RAM on this thing for now, but might look for a system which is upgradeable to 16 GB in the future. However, I don't see many systems which support 16GBs with DDR3...which I think would also be a boost for a system like this.

4.) Lastly, I've never done anything with graphics card programming (and know almost nothing about it), but I might like to leave that option open in the future. What types of graphics cards are good for graphics card programming, and what are their cost compared to normal user end graphics cards. I will probably also be using two monitors at some point (I already have a monitor, so I won't be including it in the $2000), so the graphics card has to support that...


Thanks for your help, It's really been a couple years since I've looked at building a system of this magnitude, so any advice would be appreciated

~Lyuokdea
 
Physics news on Phys.org
  • #2
To preface my answers, I'm not sure what level of experience you have with programming or hardware and how that matches mine. I'm relatively new to both fields (2 years and about 5 months respectively).

I recently upgraded to a new machine with a Intel Q9550 (2.83 Ghz) and an ok video card. I also have a raid applicable mother board and 4 GB of ram (expandable to 8 GB :-(). I'm not doing the same type of stuff you are with your apps running on your machine, I write my apps to run on a server.

Now my take of the answers:
1) Well, you are concerned about read and writes on to the HDD, yet the SSD have a write of 90 MB/s while a normal HDD can have a read and write of ~100 MB/s and be $20 cheaper. Now if you've chosen the SSD because it's SSD, then go for it. But http://www.newegg.com/Product/Product.aspx?Item=N82E16822136322" faster and larger capacity for $20 less.
Since you're worried about data drop, why would you be running 3 applications at the same time? Unless you're 100% sure that each application is writing onto a different platter then you're going to have data loss. Or you can have 3 separate drives (not just partitions) for the applications to write to then you should be ok with writing to them without data loss. Note: My applications don't have data drop since they deal with relational database updating which puts the write problem onto the server side sql manager. So I'm not worried about data loss when I write my apps.
Outside of server raiding, I've never done it, but plan to when I get out of school, hence the purpose of getting a mobo that can. I've read that there are pros and cons to have the mobo handling the raid, unfortunately I can find the sources right now. Server guys would say use a card, non-technical folks would say use the mobo. Sorry I can't really help with this.

2) As mentioned above I bought the slower version of the linked processor. You can consider server chips as they are made to handle processing a lot better and longer (several years more than desktop since servers aren't meant to be upgraded) but unfortunately they're a little bit slower. From what I understand the slowness is really less than you'd be able to notice.
Another thing is to consider over clocking and application affinity. If you're willing to overclock you can turn your Q9650 into a beast of upwards to 4.0+GHZ. I've been able to get mine to run stable at 4.1 for at least 24 hours. The worry with overclocking is the lifetime shortened by increased voltage.
If you can get each application running only on 1 processor at 100% then you'd be flying compared to running on a dual core or single core chip. I know that when you create a thread in VB.Net you can explicitly state what processor for that thread to run on. I'm not quite sure how to have the entire application run on that thread, but I'm sure there's a way to do it.
Have you looked at the Core i7? It had just come out when I bought my computer and I like being familiar with the hardware rather than going out on a limb.
From what I understand and the differences I've expierenced (dual core at work, quad at home) there is a noticble difference between the two chips. In most cases people will say a slower quad core is better than a faster dual core.
Is the operating system your using capable of using 8/16 GB? The http://msdn.microsoft.com/en-gb/library/aa366778.aspx" and there's a way to change the Linux max memory used (search Google).

4) I don't know anything about programming for video cards, sorry. :-(

Lastly, I would say post this question at http://www.tomshardware.com/forum/forum-31-322.html" and see what they say. I simply told them I have $1.5k max to spend on a computer to last me a few years, with an Intel chip and a decent video card. Then someone replied with in 24 hours with a general build which I ended up purchasing from Newegg.com. Another thing about NewEgg is that it doesn't always have the best prices or best deals. Make sure you're getting exactly what you want that it's the price you're willing to deal with. Tigerdirect.com had a machine for sale this past week that blew my machine out of the water for $400 less.

Another thing to consider is who's going to be putting the machine together? You or someone else? I would buy a static strap with your shipment to ensure that you're not damaging any hardware while you're putting it together. I did on mine and it didn't cost as much as yours. Buy a $5 item and not worry about destroying $2k machine. :-)

Hope that helps, any more questions, I hope I can help. :-)
 
Last edited by a moderator:
  • #3


Hi Lyuokdea,

First of all, it's great that you have a clear idea of what you need for your academic work and have a good budget to work with. Building your own computer will definitely give you the flexibility to customize it for your specific needs.

1.) Your idea of setting up a RAID 0 array for your system and a RAID 1 array for data security is a good one. However, keep in mind that RAID 0 does not provide any data redundancy, so if one drive fails, you will lose all your data. RAID 1, on the other hand, mirrors your data on both drives, providing redundancy. It might be worth considering setting up a RAID 5 array instead, which combines the benefits of both RAID 0 and 1. As for the need for a separate RAID controller, it depends on your motherboard and whether it has built-in RAID capabilities. Some high-end motherboards do have built-in RAID controllers, but it's always a good idea to double check before making a purchase.

2.) In terms of CPUs, Intel is definitely leading the market right now. For your work, I would recommend a quad-core processor, as it will give you better performance for running multiple processes simultaneously. The Intel Core i7 series processors are currently the top choice for high-end systems, such as the i7-920 or i7-950. These processors also support up to 24GB of DDR3 memory, so you should have no problem upgrading to 16GB in the future.

3.) As for graphics cards, since you mentioned the possibility of graphics card programming and using multiple monitors, I would recommend going for a high-end graphics card such as the NVIDIA GeForce GTX series or the AMD Radeon HD series. These cards are more expensive than standard consumer graphics cards, but they offer better performance and support for multiple monitors. Also, make sure to check the minimum system requirements for the programs you will be using for graphics card programming to ensure compatibility.

Overall, it looks like you have a good plan for your computer build. Just make sure to do some research on compatibility between components and read reviews before making your final purchases. Good luck with your build!
 

1. What is a research code machine?

A research code machine is a specialized computer or device that is used to run and analyze computational research codes. These codes are typically written in programming languages such as Python, R, or MATLAB and are used to process and analyze large amounts of data for scientific research.

2. What are the components of a research code machine?

A research code machine typically consists of a high-performance processor, a large amount of memory (RAM), and a high-speed storage device (such as a solid-state drive). It may also include specialized graphics processing units (GPUs) for running complex simulations or machine learning algorithms.

3. Can I build my own research code machine?

Yes, it is possible to build your own research code machine using individual components. However, it is important to carefully research and select compatible components that meet the necessary performance requirements for your specific research needs.

4. How do I choose the right research code machine for my research?

The right research code machine for your research will depend on the specific requirements of your project. This includes the type and size of data you will be working with, the complexity of your research codes, and any specialized software or tools that you may need. It is important to carefully consider these factors and consult with experts or do thorough research before making a decision.

5. What are the benefits of using a research code machine?

Using a research code machine can greatly improve the speed and efficiency of running computational research codes. These machines are specifically designed for handling large amounts of data and complex calculations, allowing researchers to process and analyze data more quickly and accurately. Additionally, a research code machine can be customized to meet the specific needs of a research project, providing more flexibility and control compared to using a standard computer.

Similar threads

  • DIY Projects
Replies
7
Views
3K
  • DIY Projects
Replies
23
Views
4K
  • DIY Projects
Replies
5
Views
2K
Replies
3
Views
3K
  • DIY Projects
Replies
7
Views
2K
  • Programming and Computer Science
Replies
11
Views
2K
  • Computing and Technology
Replies
2
Views
1K
  • DIY Projects
2
Replies
62
Views
7K
  • STEM Academic Advising
Replies
5
Views
853
  • Computing and Technology
Replies
3
Views
1K
Back
Top