Intel® Moderncode for Parallel Architectures
Support for developing parallel programming applications on Intel® Architecture.
1697 Discussions

what is good computational server for intel fortran?

bentobox
Beginner
1,685 Views
We bought intel FORTRAN compiler for computation, mainly in 3D numerical code. Now we want to build a good server to do the computation, which is fast, accurate, easy to use, stable and good customer support; but we do not know what is good? Anyone mind to give me any advice? thanks in advance.
0 Kudos
13 Replies
bentobox
Beginner
1,685 Views
the other thing i want to do is debugging code on server. so i want a workstation which have very easy operating system and editor. thanks a lot
0 Kudos
jimdempseyatthecove
Honored Contributor III
1,685 Views

Bentobox,

There is insufficient information in your request.

Presumably you are developing an application at this time but at some time later it is unknown if you will be using the finished application, selling the finished application, offering a service to provide others access to your server to run the finished application. During development time your needs will be different than during finished product time (capacity requirementsmay go up or down).

Also, if you could provide some sense of scope and scale. e.g. Is the 3D numerical code multi-threaded, will there be multiple concurrent instances of theapplication running at the same time (how many), the estimated size of the working data set (to estimate RAM requirements), and anything else that you might think would effect the configuration.

And what is your reasoning for placing the processing power into a server as opposed to into workstations? Depending on requirements, a workstations can out perform a server.

My preference for workstation is Windows XP Pro x64 with Visual Studio 2005.
My preference for server is WindowsServer 2003 x64 with Visual Studio 2005.
(I use both)

Your needs may be different depending on factors not provided.

Jim Dempsey

0 Kudos
bentobox
Beginner
1,685 Views

Jim, thank you so much for your kind reply. we want running 3D FEM or FD codes. And the allowed users can be from 4-10. We want all the users can run the their applications at the same time.

The main purpose of the server/ workstation is code running, a few code debugging. The finished applications are not for selling, but for research purpose.for the ram, we need at lest 8GB for each processor.

I have a question: what is difference between a server and workstation? Can the 64 bits machine give more accurate results than 32bits? what are the pros and cons about windows 64, windows 32 and Linux server / workstation for our specific needs? thanks

0 Kudos
TimP
Honored Contributor III
1,685 Views
Often, the only difference between Server and Workstation is the latter would have an expensive (money and power) graphics card. You could get a powerful dual quad core machine either way. Between the Intel "Harpertown" machines, the 1600MT FSB should give you 15% better performance than the more common 1333MT FSB. A 4 socket machine won't give you much more total performance than a good dual socket with the same RAM. If you get an 8 RAM slot machine, you would need 4GB RAM sticks so as to be able to expand to 32GB.
The 64-bit machine doesn't give more accurate results, unless it enables you to run a double precision application where only single precision might be practical on 32-bit. Actually, you no longer have a choice to get 32-bit hardware, but the default OS on a 64-bit machine is probably some version of 32-bit Windows.
In view of your intention to support multiple users and large RAM, a 64-bit OS looks like your only satisfactory choice.
You haven't given us enough data to indicate whether the choice between 64-bit Windows and linux is more than a matter of personal preference (including which development tools you are proficient with) and cost. A dual quad core system might be run with 64-bit Vista or Server 2003, depending on your requirements, or with any current mainstream linux x86-64. You can add linux dual boot to a Windows installation at little additional cost, and try it both ways.
0 Kudos
robert-reed
Valued Contributor II
1,685 Views
Let me add one refinement to Tim's comment on the difference between Workstation and Server. As he suggested, it's usually the high end graphics card that distinguishes the Workstation. So a workstation will have a PCI Express x16 slot for that graphics card and fewer I/O ports (SATA, mostly these days) and fewer DIMM slots for memory. Typically workstations will have 4 or 8, servers may have 16 or more. (These larger numbers are available because of the FB-DIMM--fully buffered DIMM, memory used. If you want non-FB DDR memory, there's a severe limitation on slots because of the way the DIMMs talk to the controller.) Thus with a server you can meet your total memory demands with smaller, cheaper memory parts.
0 Kudos
bentobox
Beginner
1,685 Views

thanks for your quick reply.

the main application softwares we are using are FORTRAN and visual studio, but most of them are FORTRAN codes. we are looking for a server/ workstation with at least 8-16 fast processors, and each processorwith at least 8GB RAM. We want tohave something expandable so that in the future we can update it to 32, 64processors and 16GB or even more ram with each processor.

for the FORTRAN3d numerical computation, can the 64-bits machine giveus more accurate results than 32-bits machine? what are the pros and cons for the Linux and windows server/workstationsince we are not sure whether we want a windows or Linux server/work station. thanks

0 Kudos
robert-reed
Valued Contributor II
1,685 Views

With the number of cores you envision and the expandability you want, it sounds like perhaps you should think about starting with a small cluster and building out as your requirements grow. The insistence on 8GB RAM per core suggests an upper limit (at least currently) on your problem size. The insistence on PER CORE suggests that your program currently is single threaded (multithreaded solutions would share memory between cores working in parallel in the problem space). Finite element modeling (I assume that's what you meant by FEM) seems to have the potential for parallel execution, and with processor clock speeds reaching a ceiling, future performance gains will come mostly from parallelization.

If your goal is 64 processors with 16 GB memory each, that's a terabyte of memory. Put all on one bus, that would be acontention nightmare. So at least you would need to consider some NUMA (NonUniform Memory Access) arrangement. A cluster of nodes is not far away from that.

The 64-bit machine would be no more accurate than the 32-bit machine since most modern architectures support double-precision floating point hardware (or better). It would be faster because the bus width would allow data to get to and from memory in fewer cycles.

There are both Windows and Linux cluster solutions. If your team is already familiar with Visual Studio, that seems like a good starting point. I won't pick sides here on that religious issue.

0 Kudos
bentobox
Beginner
1,685 Views
what is the difference in physical configuration between the server doingsingle thread and multithread? now we look at the 8-16 processors and each with 8gb ram; for the future, it will go to 32-64 processors and each with 16 gb ram. How can we make it expanable? what is NUMA? how much is the price differnce between the server with or without NUMA? thanks
0 Kudos
TimP
Honored Contributor III
1,685 Views
As Robert said, if you need more capacity than a dual quad core machine, a cluster is the way to go. Personal clusters in a deskside box go up to 8 sockets quad core (32 cores). They are usually acquired to support MPI parallel work, possibly using all the cores for a single job, likely using queuing software to run a series of jobs. Individual jobs could have requirements as small as a single node, in which case MPI would not be required.
The availability of complete software/hardware packages for linux is running ahead of Windows:
www.intel.com/go/cluster
0 Kudos
robert-reed
Valued Contributor II
1,685 Views

Threadedness has more to do with the programs running on the server than it does the physical configuration of the server itself. All contemporary server architectures can support both single-threaded and multi-threaded code. It's unlikely you could pick a server that could not handle multi-threaded code these days, but some algorithms can take better advantage of threading than others. The fallback if a particular program is not multi-threaded is to use the operating system's scheduler, which manages processes, threaded or not, as they execute on the server. I suggested in my last note one method to make it expandable: plan a cluster of nodes, each having 4-16 processors and enough memory to support your processing.

As I said in my previous note, NUMA stands for NonUniform Memory Architecture. You can find information on this from Wikipedia. Basically it's an architectural topology where the memory is divided into physical chunks residing in separate parts of the topology. It has performance tradeoffs depending on the algorithms being employed but price usually isn't a big factor in choosing NUMA.

0 Kudos
jimdempseyatthecove
Honored Contributor III
1,685 Views

Bentobox,

From your description of your application is that you will have one application program (with potential various revisions under development) that will be used by an arbitrary number of users at any given time. 4 to 10 users initially, more later. Your current code is not multi-threaded and it is unknown at this time if it can be programmed to be multi-threaded (and benefit therefrom)or if you would be inclined to take the effort to convert the code. You estimate the upper limit on RAM for each user is 8GB. Assuming the RAM requirementis fixed.

The processing demand by application users is may be of two classifications:

a) long run times (hours)
b) short bursts (seconds)

For the Server route

If of long run times then more processing capacity is required (more CPUs and/or cores), perhaps one (or more) coresper user.
If of short bursts then it may be desiresable to have fewer processors, one (or more) cores per 4 users.The server will typically be something like a Windows Terminal Server where your application user will have a PC to access the server and to present a front-end. So for 10 users you would have a Server + 10 PCs. Unless the PCs are free you have to figure the cost of the PCs into the equation.

For the PC route

Your biggest concern is selecting a motherboard that can handle 8GB. There are some LGA775 motherboards that can handle 8GB, and some more. The price for RAM on a PC is typically less that that for a Server. And you can have 1 to 4 cores running on an LGA775 motherboard (each often faster than that on a server).Many of these motherboardsare under $100. When (if) your RAM requirement goes beyond 8GB per user there are some current LGA775 motherboards that go to 12GB. If your RAM requirements per user will rise significantly above 8GB then consider choosing an LGA771 server motherboard (costs more). These can come in 1, 2, 4processor sockets (each holding 1 to 4 cores) and can handle various larger RAM capacity (32, 64 or 128GB). Depending on the model your memory prices will cost more as well.

This leads us back to

a) long run times
b) short bursts

If a), I would suggest the PC route as your costs and capacity scales per user
If b), I would suggest the Server route because you can buy less RAM and less processing capacity (in hope of reducing costs while providing reasonable performance).

Since your program is under development you may have some time to experiment with sizing one PC as your end-user workstation. This will provide you the data as to how to resize the PC or to estimate your sizing requiremts for the server (and to compare costs/performance).

Jim Dempsey

0 Kudos
bentobox
Beginner
1,685 Views

thank you so much for your information. the server/cluster we want to build is basically for 4-10 users. and each other can submit his application on the server. we prefer multitasking, which means multi-users can&; do multi-jobs.

since our requirement is for 8-cpu, expandable to 16 or even 32 cpus, each cpu can have at least 8gb ram. if we want a cluster, how can we build a cluster? do u have any good manufactures to recommend? thanks

0 Kudos
TimP
Honored Contributor III
1,685 Views
The hardware and software vendors who have certified Intel Cluster Ready products are listed on the site mentioned previously. There are others who produce good products, but have chosen not to participate in ICR.
0 Kudos
Reply