Hi all,
I need your advice/suggestions on which system to choose/purchase/build in
order to do high performance computations.
The software I mostly rely on are: Matlab, Mathematica, Maple, C/C++, GSL,
GMP, MPFR, etc.
The area of computations are numerical computation, symbolic computation,
numerical optimization(about mid size).
I am looking for cost-effective solutions using my own money as a student
and this is not officially supported by any grant.
The goal is to find a solution that can make the computation as fast as
possible. For example, my current program needs quite a few days to finish,
and it may well take 10+ days. I have to make progress. The school owned
small cluster is shared and the fair-usage policy makes it slow. The
supercomputers might be a good solution (can anybody tell me which are the
good super computers that I can use?) But supercomputers have a huge
waiting time.
I did some research, it seems that I have 2 options:
1. Buy at deal price(e.g. Dell) 4-5 old P4 computers, or even second hand
computers, and build a clustering system. (I hope the cost is less than
$2000) .
2. Buy Intel or AMD dual core/cpu or quad core/cpu computer. That's going to
be around $2000 at least. And since the technology is quite new, so they
might be over priced currently.
In both cases, $2000 is a big number for me. I am willing to save a lot in
order to build such a system. The reason is obvious: higher computing power
means higher efficiency and higher productivity. It will pay off in the long
run.
Which option do you think that will give me the most performance gain with
respect to my specific computation areas? Are the software able to utilize
the hardware/system technology fully? Which option is most cost-effective
and easy to maintain?
I welcome specific system configuration examples and experiences, e.g. how
many cluster computers do one dual-core computer compare to in terms of
speed of computations? How about quad-core? Do they really justify their
current high price? I'd like to hear field reports with some first hand
statistics such as Matlab speedup numbers, comparisons, etc.
Thanks a lot and happy new year!
|
|
0
|
|
|
|
Reply
|
housing2006 (283)
|
12/31/2006 2:42:17 AM |
|
Mike wrote:
> Hi all,
>
> I need your advice/suggestions on which system to choose/purchase/build in
> order to do high performance computations.
>
> The software I mostly rely on are: Matlab, Mathematica, Maple, C/C++, GSL,
> GMP, MPFR, etc.
>
> The area of computations are numerical computation, symbolic computation,
> numerical optimization(about mid size).
>
....
> I did some research, it seems that I have 2 options:
>
> 1. Buy at deal price(e.g. Dell) 4-5 old P4 computers, or even second hand
> computers, and build a clustering system. (I hope the cost is less than
> $2000) .
>
> 2. Buy Intel or AMD dual core/cpu or quad core/cpu computer. That's going to
> be around $2000 at least. And since the technology is quite new, so they
> might be over priced currently.
You will only achieve the desired performance increase on a cluster or
a multi-core computer if your application(s) are either multi-process
or multi-threaded. A single-threaded application is not going to
demonstrate any significant performance increase on a multi-core
system.
Are your numerical applications already designed for parallel
computation?
Jim Rogers
|
|
0
|
|
|
|
Reply
|
jimmaureenrogers2 (249)
|
12/31/2006 3:19:59 AM
|
|
<jimmaureenrogers@worldnet.att.net> wrote in message
news:1167535199.579408.303810@k21g2000cwa.googlegroups.com...
> Mike wrote:
>> Hi all,
>>
>> I need your advice/suggestions on which system to choose/purchase/build
>> in
>> order to do high performance computations.
>>
>> The software I mostly rely on are: Matlab, Mathematica, Maple, C/C++,
>> GSL,
>> GMP, MPFR, etc.
>>
>> The area of computations are numerical computation, symbolic computation,
>> numerical optimization(about mid size).
>>
> ...
>> I did some research, it seems that I have 2 options:
>>
>> 1. Buy at deal price(e.g. Dell) 4-5 old P4 computers, or even second hand
>> computers, and build a clustering system. (I hope the cost is less than
>> $2000) .
>>
>> 2. Buy Intel or AMD dual core/cpu or quad core/cpu computer. That's going
>> to
>> be around $2000 at least. And since the technology is quite new, so they
>> might be over priced currently.
>
> You will only achieve the desired performance increase on a cluster or
> a multi-core computer if your application(s) are either multi-process
> or multi-threaded. A single-threaded application is not going to
> demonstrate any significant performance increase on a multi-core
> system.
>
> Are your numerical applications already designed for parallel
> computation?
>
> Jim Rogers
>
On one hand, I need computing power for various programs. Some programs will
be written by myself in C/C++, that I can control. Please tell me which
multi-process or multi-thread programming skill I need to learn?
You mention both multi-process and multi-thread programming? I have to learn
both? Which libraries are the best for each cases? I am guessing that for
dual/quad core programming, I need multi-thread; for clustering, I need
multi-process? Am I right?
I am looking for a solution... Thanks a lot for your advice!
|
|
0
|
|
|
|
Reply
|
housing2006 (283)
|
12/31/2006 3:32:20 AM
|
|
<jimmaureenrogers@worldnet.att.net> wrote in message
news:1167535199.579408.303810@k21g2000cwa.googlegroups.com...
> Mike wrote:
>> Hi all,
>>
>> I need your advice/suggestions on which system to choose/purchase/build
>> in
>> order to do high performance computations.
>>
>> The software I mostly rely on are: Matlab, Mathematica, Maple, C/C++,
>> GSL,
>> GMP, MPFR, etc.
>>
>> The area of computations are numerical computation, symbolic computation,
>> numerical optimization(about mid size).
>>
> ...
>> I did some research, it seems that I have 2 options:
>>
>> 1. Buy at deal price(e.g. Dell) 4-5 old P4 computers, or even second hand
>> computers, and build a clustering system. (I hope the cost is less than
>> $2000) .
>>
>> 2. Buy Intel or AMD dual core/cpu or quad core/cpu computer. That's going
>> to
>> be around $2000 at least. And since the technology is quite new, so they
>> might be over priced currently.
>
> You will only achieve the desired performance increase on a cluster or
> a multi-core computer if your application(s) are either multi-process
> or multi-threaded. A single-threaded application is not going to
> demonstrate any significant performance increase on a multi-core
> system.
>
> Are your numerical applications already designed for parallel
> computation?
>
> Jim Rogers
>
For the applications that are not written by me, I have no control. That's
why you can see I post my question on Matlab, and Maple newsgroups. I'd like
to hear their ideas and comments. I didn't post on Mathematica newsgroup
because that one is slow. However if anybody had experience about using
clustering and multi-core on Mathematica, please shed some lights on me...
Thanks!
|
|
0
|
|
|
|
Reply
|
housing2006 (283)
|
12/31/2006 3:33:46 AM
|
|
On Sat, 30 Dec 2006 19:32:20 -0800, Mike wrote:
>
> <jimmaureenrogers@worldnet.att.net> wrote in message
> news:1167535199.579408.303810@k21g2000cwa.googlegroups.com...
>> Mike wrote:
>>> Hi all,
>>>
>>> I need your advice/suggestions on which system to choose/purchase/build
>>> in
>>> order to do high performance computations.
>>>
>>> The software I mostly rely on are: Matlab, Mathematica, Maple, C/C++,
>>> GSL,
>>> GMP, MPFR, etc.
>>>
>>> The area of computations are numerical computation, symbolic computation,
>>> numerical optimization(about mid size).
>>>
>> ...
>>> I did some research, it seems that I have 2 options:
>>>
>>> 1. Buy at deal price(e.g. Dell) 4-5 old P4 computers, or even second hand
>>> computers, and build a clustering system. (I hope the cost is less than
>>> $2000) .
>>>
>>> 2. Buy Intel or AMD dual core/cpu or quad core/cpu computer. That's going
>>> to
>>> be around $2000 at least. And since the technology is quite new, so they
>>> might be over priced currently.
>>
>> You will only achieve the desired performance increase on a cluster or
>> a multi-core computer if your application(s) are either multi-process
>> or multi-threaded. A single-threaded application is not going to
>> demonstrate any significant performance increase on a multi-core
>> system.
>>
>> Are your numerical applications already designed for parallel
>> computation?
>>
>> Jim Rogers
>>
>
> On one hand, I need computing power for various programs. Some programs will
> be written by myself in C/C++, that I can control. Please tell me which
> multi-process or multi-thread programming skill I need to learn?
Optimization and parallelization. And these are not simple topics.
>
> You mention both multi-process and multi-thread programming? I have to learn
> both? Which libraries are the best for each cases? I am guessing that for
> dual/quad core programming, I need multi-thread; for clustering, I need
> multi-process? Am I right?
>
> I am looking for a solution... Thanks a lot for your advice!
|
|
0
|
|
|
|
Reply
|
ray65 (5398)
|
12/31/2006 3:52:24 AM
|
|
On Sat, 30 Dec 2006 18:42:17 -0800, Mike wrote:
> Hi all,
>
> I need your advice/suggestions on which system to choose/purchase/build in
> order to do high performance computations.
>
> The software I mostly rely on are: Matlab, Mathematica, Maple, C/C++, GSL,
> GMP, MPFR, etc.
>
> The area of computations are numerical computation, symbolic computation,
> numerical optimization(about mid size).
>
> I am looking for cost-effective solutions using my own money as a student
> and this is not officially supported by any grant.
>
> The goal is to find a solution that can make the computation as fast as
> possible. For example, my current program needs quite a few days to finish,
> and it may well take 10+ days. I have to make progress. The school owned
> small cluster is shared and the fair-usage policy makes it slow. The
> supercomputers might be a good solution (can anybody tell me which are the
> good super computers that I can use?) But supercomputers have a huge
> waiting time.
>
> I did some research, it seems that I have 2 options:
>
> 1. Buy at deal price(e.g. Dell) 4-5 old P4 computers, or even second hand
> computers, and build a clustering system. (I hope the cost is less than
> $2000) .
>
> 2. Buy Intel or AMD dual core/cpu or quad core/cpu computer. That's going to
> be around $2000 at least. And since the technology is quite new, so they
> might be over priced currently.
>
> In both cases, $2000 is a big number for me. I am willing to save a lot in
> order to build such a system. The reason is obvious: higher computing power
> means higher efficiency and higher productivity. It will pay off in the long
> run.
>
> Which option do you think that will give me the most performance gain with
> respect to my specific computation areas? Are the software able to utilize
> the hardware/system technology fully? Which option is most cost-effective
> and easy to maintain?
>
> I welcome specific system configuration examples and experiences, e.g. how
> many cluster computers do one dual-core computer compare to in terms of
> speed of computations? How about quad-core? Do they really justify their
> current high price? I'd like to hear field reports with some first hand
> statistics such as Matlab speedup numbers, comparisons, etc.
>
> Thanks a lot and happy new year!
I've been doing a lot of benchmarking on my systems in the last few days.
What I've found is that the Core2 Duo is generally about 25% faster on a
clock for clock basis then the Athlon 64 X2 (with 1M caches, the 1/2M
Cache version of the A64 is slower). In some cases the Core2 is as much as
65% faster. With respect to my old P4 Xeon system each core is between
210% and 350% faster than each processor in the Xeon system. What this
says is that you shouldn't consider a cluster of P4s unless the P4 systems
can be had for less than $350 each. My Core2 Duo E6700 with 4G of DDR 800
RAM cost me around $1.5K to build (got the parts from Newegg). You can
save some money by buying slower RAM. The FSB on the Core2s is the
bottleneck so anything faster than 533MHz (which exactly matches the FSB
speed which is 1066MHz) is wasted. My measurements are showing that the
performance difference between running the RAM at 533MHz and running it at
800MHz is only 1%. The Core2 also seems to be very overclockable. I was
able to run at 3.2GHz using the stock Intel cooler for about 12 hours
before the system crashed on me. My guess is that if you got a Thermaltake
Big Typhoon cooler you could get away with overclocking the system which
would give you a further 20% boost.
|
|
0
|
|
|
|
Reply
|
schvantzkoph (1875)
|
12/31/2006 4:08:56 AM
|
|
"General Schvantzkoph" <schvantzkoph@yahoo.com> wrote in message
news:4voreoF1cnie8U2@mid.individual.net...
> On Sat, 30 Dec 2006 18:42:17 -0800, Mike wrote:
>
>> Hi all,
>>
>> I need your advice/suggestions on which system to choose/purchase/build
>> in
>> order to do high performance computations.
>>
>> The software I mostly rely on are: Matlab, Mathematica, Maple, C/C++,
>> GSL,
>> GMP, MPFR, etc.
>>
>> The area of computations are numerical computation, symbolic computation,
>> numerical optimization(about mid size).
>>
>> I am looking for cost-effective solutions using my own money as a student
>> and this is not officially supported by any grant.
>>
>> The goal is to find a solution that can make the computation as fast as
>> possible. For example, my current program needs quite a few days to
>> finish,
>> and it may well take 10+ days. I have to make progress. The school owned
>> small cluster is shared and the fair-usage policy makes it slow. The
>> supercomputers might be a good solution (can anybody tell me which are
>> the
>> good super computers that I can use?) But supercomputers have a huge
>> waiting time.
>>
>> I did some research, it seems that I have 2 options:
>>
>> 1. Buy at deal price(e.g. Dell) 4-5 old P4 computers, or even second hand
>> computers, and build a clustering system. (I hope the cost is less than
>> $2000) .
>>
>> 2. Buy Intel or AMD dual core/cpu or quad core/cpu computer. That's going
>> to
>> be around $2000 at least. And since the technology is quite new, so they
>> might be over priced currently.
>>
>> In both cases, $2000 is a big number for me. I am willing to save a lot
>> in
>> order to build such a system. The reason is obvious: higher computing
>> power
>> means higher efficiency and higher productivity. It will pay off in the
>> long
>> run.
>>
>> Which option do you think that will give me the most performance gain
>> with
>> respect to my specific computation areas? Are the software able to
>> utilize
>> the hardware/system technology fully? Which option is most cost-effective
>> and easy to maintain?
>>
>> I welcome specific system configuration examples and experiences, e.g.
>> how
>> many cluster computers do one dual-core computer compare to in terms of
>> speed of computations? How about quad-core? Do they really justify their
>> current high price? I'd like to hear field reports with some first hand
>> statistics such as Matlab speedup numbers, comparisons, etc.
>>
>> Thanks a lot and happy new year!
>
> I've been doing a lot of benchmarking on my systems in the last few days.
> What I've found is that the Core2 Duo is generally about 25% faster on a
> clock for clock basis then the Athlon 64 X2 (with 1M caches, the 1/2M
> Cache version of the A64 is slower). In some cases the Core2 is as much as
> 65% faster. With respect to my old P4 Xeon system each core is between
> 210% and 350% faster than each processor in the Xeon system. What this
> says is that you shouldn't consider a cluster of P4s unless the P4 systems
> can be had for less than $350 each. My Core2 Duo E6700 with 4G of DDR 800
> RAM cost me around $1.5K to build (got the parts from Newegg). You can
> save some money by buying slower RAM. The FSB on the Core2s is the
> bottleneck so anything faster than 533MHz (which exactly matches the FSB
> speed which is 1066MHz) is wasted. My measurements are showing that the
> performance difference between running the RAM at 533MHz and running it at
> 800MHz is only 1%. The Core2 also seems to be very overclockable. I was
> able to run at 3.2GHz using the stock Intel cooler for about 12 hours
> before the system crashed on me. My guess is that if you got a Thermaltake
> Big Typhoon cooler you could get away with overclocking the system which
> would give you a further 20% boost.
Thank you so much General Schvantzkoph for the invaluable information
consisting of both performance comparisons and cost analysis. That's
extremely helpful to me! I welcome more of such inputs.
Could you also provide speedup statistics about applications such as MATLAB,
Mathematica, Maple, GSL, GMP, MPFR, etc., in terms numerical/floating point
computations and symbolic computations? That would be even greater!
It looks that 1 core is about 3 single P4 CPUs from what you've experienced.
Considering networking bottlenecks, may I say a Quad-core system can compete
with about 10-P4 CPU clustering system, in terms of performance in
scientific computations? If so, then that's very good.
How about the stories from the AMD side? Anybody owns a AMD multi-core
system and/or AMD clustering systems?
When will AMD make its Quad-core CPU available? Shall I wait for AMD's
Quad-core?
Will I be able to build a Quad-core system with < $ 2000 ?
Thanks a lot General Schvantzkoph and everybody!
|
|
0
|
|
|
|
Reply
|
housing2006 (283)
|
12/31/2006 4:31:10 AM
|
|
On Sat, 30 Dec 2006 20:31:10 -0800, Mike wrote:
> "General Schvantzkoph" <schvantzkoph@yahoo.com> wrote in message
> news:4voreoF1cnie8U2@mid.individual.net...
>> On Sat, 30 Dec 2006 18:42:17 -0800, Mike wrote:
>>
>>> Hi all,
>>>
>>> I need your advice/suggestions on which system to choose/purchase/build
>>> in
>>> order to do high performance computations.
>>>
>>> The software I mostly rely on are: Matlab, Mathematica, Maple, C/C++,
>>> GSL,
>>> GMP, MPFR, etc.
>>>
>>> The area of computations are numerical computation, symbolic computation,
>>> numerical optimization(about mid size).
>>>
>>> I am looking for cost-effective solutions using my own money as a student
>>> and this is not officially supported by any grant.
>>>
>>> The goal is to find a solution that can make the computation as fast as
>>> possible. For example, my current program needs quite a few days to
>>> finish,
>>> and it may well take 10+ days. I have to make progress. The school owned
>>> small cluster is shared and the fair-usage policy makes it slow. The
>>> supercomputers might be a good solution (can anybody tell me which are
>>> the
>>> good super computers that I can use?) But supercomputers have a huge
>>> waiting time.
>>>
>>> I did some research, it seems that I have 2 options:
>>>
>>> 1. Buy at deal price(e.g. Dell) 4-5 old P4 computers, or even second hand
>>> computers, and build a clustering system. (I hope the cost is less than
>>> $2000) .
>>>
>>> 2. Buy Intel or AMD dual core/cpu or quad core/cpu computer. That's going
>>> to
>>> be around $2000 at least. And since the technology is quite new, so they
>>> might be over priced currently.
>>>
>>> In both cases, $2000 is a big number for me. I am willing to save a lot
>>> in
>>> order to build such a system. The reason is obvious: higher computing
>>> power
>>> means higher efficiency and higher productivity. It will pay off in the
>>> long
>>> run.
>>>
>>> Which option do you think that will give me the most performance gain
>>> with
>>> respect to my specific computation areas? Are the software able to
>>> utilize
>>> the hardware/system technology fully? Which option is most cost-effective
>>> and easy to maintain?
>>>
>>> I welcome specific system configuration examples and experiences, e.g.
>>> how
>>> many cluster computers do one dual-core computer compare to in terms of
>>> speed of computations? How about quad-core? Do they really justify their
>>> current high price? I'd like to hear field reports with some first hand
>>> statistics such as Matlab speedup numbers, comparisons, etc.
>>>
>>> Thanks a lot and happy new year!
>>
>> I've been doing a lot of benchmarking on my systems in the last few days.
>> What I've found is that the Core2 Duo is generally about 25% faster on a
>> clock for clock basis then the Athlon 64 X2 (with 1M caches, the 1/2M
>> Cache version of the A64 is slower). In some cases the Core2 is as much as
>> 65% faster. With respect to my old P4 Xeon system each core is between
>> 210% and 350% faster than each processor in the Xeon system. What this
>> says is that you shouldn't consider a cluster of P4s unless the P4 systems
>> can be had for less than $350 each. My Core2 Duo E6700 with 4G of DDR 800
>> RAM cost me around $1.5K to build (got the parts from Newegg). You can
>> save some money by buying slower RAM. The FSB on the Core2s is the
>> bottleneck so anything faster than 533MHz (which exactly matches the FSB
>> speed which is 1066MHz) is wasted. My measurements are showing that the
>> performance difference between running the RAM at 533MHz and running it at
>> 800MHz is only 1%. The Core2 also seems to be very overclockable. I was
>> able to run at 3.2GHz using the stock Intel cooler for about 12 hours
>> before the system crashed on me. My guess is that if you got a Thermaltake
>> Big Typhoon cooler you could get away with overclocking the system which
>> would give you a further 20% boost.
>
>
> Thank you so much General Schvantzkoph for the invaluable information
> consisting of both performance comparisons and cost analysis. That's
> extremely helpful to me! I welcome more of such inputs.
>
> Could you also provide speedup statistics about applications such as MATLAB,
> Mathematica, Maple, GSL, GMP, MPFR, etc., in terms numerical/floating point
> computations and symbolic computations? That would be even greater!
>
> It looks that 1 core is about 3 single P4 CPUs from what you've experienced.
>
> Considering networking bottlenecks, may I say a Quad-core system can compete
> with about 10-P4 CPU clustering system, in terms of performance in
> scientific computations? If so, then that's very good.
>
> How about the stories from the AMD side? Anybody owns a AMD multi-core
> system and/or AMD clustering systems?
>
> When will AMD make its Quad-core CPU available? Shall I wait for AMD's
> Quad-core?
>
> Will I be able to build a Quad-core system with < $ 2000 ?
>
> Thanks a lot General Schvantzkoph and everybody!
I don't know about Matlab. The applications that I use are NCVerilog,
Xilinx and Altera FPGA tools, so that's what I've benchmarked. As I said in
my earlier post most applications run about 25% faster (clock for clock)
on the Core2. When NCVerilog is in the save state mode (recordvars on) it
runs 69% faster on the Core2. The reason for that is that Cadence has
really tuned NC to take advantage of cache and the Core2 has 4M of unified
cache vs two 1M caches on the Athlon 64 X2 4400+.
You should be able to build a quad core Intel machine for around $2100.
Here is what I paid for my system, you'll need to add $500 for a quad
cores (I got a dual core E6700 which is half the price of a quad core),
about $100 for a disk drive and $30 for an SATA DVD ROM (I already had the
drive and the DVD which is why they aren't in this list). Also I'm not
thrilled with the Abit motherboard, LM Sensors doesn't work with it and it
crashes if you use the On-Demand speed governors. This is the Newegg
invoice,
11-112-100 CASE LIANLI|PC-60BPLUSII BLK RT 1 $129.99 $129.99
13-127-004 MB ABIT AB9 PRO P965 775 1 $145.99 $145.99
Abit (510)-623-0500
14-121-009 VGA ASUS N EN7300LE/HTD/128M R 1 $51.99 $51.99
17-103-437 POWER SP|550WATXEG651P-VEFM(24P)RT 1 $109.99 $109.99
19-115-002 CPU INTEL|C2D E6700 2.66G 775 4M R 1 $509.99 $509.99
20-231-112 MEM 2Gx2|GSK F2-6400CL6D-4GBMQ % 1 $499.99 $499.99
|
|
0
|
|
|
|
Reply
|
schvantzkoph (1875)
|
12/31/2006 5:15:45 AM
|
|
Mike wrote:
> <jimmaureenrogers@worldnet.att.net> wrote in message
> news:1167535199.579408.303810@k21g2000cwa.googlegroups.com...
> > Mike wrote:
> >> Hi all,
> >>
> >> I need your advice/suggestions on which system to choose/purchase/build
> >> in
> >> order to do high performance computations.
> >>
> >> The software I mostly rely on are: Matlab, Mathematica, Maple, C/C++,
> >> GSL,
> >> GMP, MPFR, etc.
> >>
> >> The area of computations are numerical computation, symbolic computation,
> >> numerical optimization(about mid size).
> >>
> > ...
> >> I did some research, it seems that I have 2 options:
> >>
> >> 1. Buy at deal price(e.g. Dell) 4-5 old P4 computers, or even second hand
> >> computers, and build a clustering system. (I hope the cost is less than
> >> $2000) .
> >>
> >> 2. Buy Intel or AMD dual core/cpu or quad core/cpu computer. That's going
> >> to
> >> be around $2000 at least. And since the technology is quite new, so they
> >> might be over priced currently.
> >
> > You will only achieve the desired performance increase on a cluster or
> > a multi-core computer if your application(s) are either multi-process
> > or multi-threaded. A single-threaded application is not going to
> > demonstrate any significant performance increase on a multi-core
> > system.
> >
> > Are your numerical applications already designed for parallel
> > computation?
> >
> > Jim Rogers
> >
>
> On one hand, I need computing power for various programs. Some programs will
> be written by myself in C/C++, that I can control. Please tell me which
> multi-process or multi-thread programming skill I need to learn?
>
> You mention both multi-process and multi-thread programming? I have to learn
> both? Which libraries are the best for each cases? I am guessing that for
> dual/quad core programming, I need multi-thread; for clustering, I need
> multi-process? Am I right?
Multithreaded programs have:-
* More than one thread of executing code.
* Normally only one memory space shared by all the threads.
Multiprocess programs have:-
* More than one thread of executing code.
* More than one memory space. Often one per thread of code.
Multi-core processors and SMP(symmetrical multi-processor) machines can
be programmed in both ways. Multi-core processors are only SMP systems
built on a single chip.
Clusters are different. They are connected together with much slower
interconnects than SMP machines or multi-core processors. To program
them in parallel you must use multiple processes, and, normally some
kind of library to communicate between the multiple processes. It is
more difficult than using SMP.
Generally multi-X programming is more difficult than single-threaded,
single-process programming. If you are writing code just for research
then it's worth avoiding because it will take you more time. So, my
advice is get the machine with the fastest single-threaded performance
you can find. These days that machine will probably be dual-core.
|
|
0
|
|
|
|
Reply
|
rthorpe (232)
|
12/31/2006 12:44:28 PM
|
|
Mike wrote:
> Hi all,
>
> I need your advice/suggestions on which system to choose/purchase/build in
> order to do high performance computations.
>
> The software I mostly rely on are: Matlab, Mathematica, Maple, C/C++, GSL,
> GMP, MPFR, etc.
>
> The area of computations are numerical computation, symbolic computation,
> numerical optimization(about mid size).
>
> I am looking for cost-effective solutions using my own money as a student
> and this is not officially supported by any grant.
>
> The goal is to find a solution that can make the computation as fast as
> possible. For example, my current program needs quite a few days to
> finish, and it may well take 10+ days. I have to make progress. The school
> owned small cluster is shared and the fair-usage policy makes it slow. The
> supercomputers might be a good solution (can anybody tell me which are the
> good super computers that I can use?) But supercomputers have a huge
> waiting time.
>
> I did some research, it seems that I have 2 options:
>
> 1. Buy at deal price(e.g. Dell) 4-5 old P4 computers, or even second hand
> computers, and build a clustering system. (I hope the cost is less than
> $2000) .
>
> 2. Buy Intel or AMD dual core/cpu or quad core/cpu computer. That's going
> to be around $2000 at least. And since the technology is quite new, so
> they might be over priced currently.
>
> In both cases, $2000 is a big number for me. I am willing to save a lot in
> order to build such a system. The reason is obvious: higher computing
> power means higher efficiency and higher productivity. It will pay off in
> the long run.
>
> Which option do you think that will give me the most performance gain with
> respect to my specific computation areas? Are the software able to utilize
> the hardware/system technology fully? Which option is most cost-effective
> and easy to maintain?
>
> I welcome specific system configuration examples and experiences, e.g. how
> many cluster computers do one dual-core computer compare to in terms of
> speed of computations? How about quad-core? Do they really justify their
> current high price? I'd like to hear field reports with some first hand
> statistics such as Matlab speedup numbers, comparisons, etc.
>
> Thanks a lot and happy new year!
Well I bought a Dell Insperion 1501 notebook with AMD turion x2 with 1 GB
ram and 120MB HD for 800.
So far I have had the cpu usage go past 50%.
--
Dancin in the ruins tonight
Tayo'y Mga Pinoy
|
|
0
|
|
|
|
Reply
|
scrat (71)
|
12/31/2006 12:47:51 PM
|
|
Mike skrev:
>
> On one hand, I need computing power for various programs. Some programs will
> be written by myself in C/C++, that I can control. Please tell me which
> multi-process or multi-thread programming skill I need to learn?
>
> You mention both multi-process and multi-thread programming? I have to learn
> both? Which libraries are the best for each cases? I am guessing that for
> dual/quad core programming, I need multi-thread; for clustering, I need
> multi-process? Am I right?
>
> I am looking for a solution... Thanks a lot for your advice!
It seems you do not have a particularly suitable starting point
for doing multi-threading analysis or programming. On the short
term (i.e. to get through with your thesis and get your degree),
I'll suggest you take the "loss" and either accept the low perfomance
of your school's cluster, or wait for time on a supercomputer.
If you start a project as you indicate, be prepared to spend a lot
of time on learning before you get any sort of results. I would
suggest you start out in one of two ways, just to learn the basics:
1) Get two cheap 2nd hand computers and try to make them work
in cluster. You will spend a bit of time to achieve this; computers
that
are state-of-the-art now are likely to be obsolete by the time you
are finished.
2) Get a low-cost duo-core computer and learn multi-threading there.
Again, you will likely spend a bit of time learning the basics,
so don't spend any huge amounts of $$ on this.
Rune
|
|
0
|
|
|
|
Reply
|
allnor (8474)
|
12/31/2006 1:03:36 PM
|
|
"Mike" <housing2006@gmail.com> wrote in message
news:en77pq$r2f$1@news.Stanford.EDU...
> Hi all,
>
> I need your advice/suggestions on which system to choose/purchase/build in
> order to do high performance computations.
>
> The software I mostly rely on are: Matlab, Mathematica, Maple, C/C++, GSL,
> GMP, MPFR, etc.
>
> The area of computations are numerical computation, symbolic computation,
> numerical optimization(about mid size).
>
> I am looking for cost-effective solutions using my own money as a student
> and this is not officially supported by any grant.
>
> The goal is to find a solution that can make the computation as fast as
> possible. For example, my current program needs quite a few days to
finish,
> and it may well take 10+ days. I have to make progress. The school owned
> small cluster is shared and the fair-usage policy makes it slow. The
> supercomputers might be a good solution (can anybody tell me which are the
> good super computers that I can use?) But supercomputers have a huge
> waiting time.
>
> I did some research, it seems that I have 2 options:
>
> 1. Buy at deal price(e.g. Dell) 4-5 old P4 computers, or even second hand
> computers, and build a clustering system. (I hope the cost is less than
> $2000) .
>
> 2. Buy Intel or AMD dual core/cpu or quad core/cpu computer. That's going
to
> be around $2000 at least. And since the technology is quite new, so they
> might be over priced currently.
>
> In both cases, $2000 is a big number for me. I am willing to save a lot in
> order to build such a system. The reason is obvious: higher computing
power
> means higher efficiency and higher productivity. It will pay off in the
long
> run.
>
> Which option do you think that will give me the most performance gain with
> respect to my specific computation areas? Are the software able to utilize
> the hardware/system technology fully? Which option is most cost-effective
> and easy to maintain?
>
> I welcome specific system configuration examples and experiences, e.g. how
> many cluster computers do one dual-core computer compare to in terms of
> speed of computations? How about quad-core? Do they really justify their
> current high price? I'd like to hear field reports with some first hand
> statistics such as Matlab speedup numbers, comparisons, etc.
>
> Thanks a lot and happy new year!
>
>
>
This has to be a very young kid, or just a spam. It's actually
fairly humorous.
|
|
0
|
|
|
|
Reply
|
barryg532 (168)
|
12/31/2006 1:19:24 PM
|
|
< snipped>
Do you think you two could do a bit of editing next time you post ?
Dave
|
|
0
|
|
|
|
Reply
|
me4 (18697)
|
12/31/2006 2:38:56 PM
|
|
On Sat, 30 Dec 2006 18:42:17 -0800, Mike wrote:
> Hi all,
>
> I need your advice/suggestions on which system to choose/purchase/build in
> order to do high performance computations.
>
> The software I mostly rely on are: Matlab, Mathematica, Maple, C/C++, GSL,
> GMP, MPFR, etc.
>
> The area of computations are numerical computation, symbolic computation,
> numerical optimization(about mid size).
>
> I am looking for cost-effective solutions using my own money as a student
> and this is not officially supported by any grant.
>
> The goal is to find a solution that can make the computation as fast as
> possible. For example, my current program needs quite a few days to finish,
> and it may well take 10+ days. I have to make progress. The school owned
> small cluster is shared and the fair-usage policy makes it slow. The
> supercomputers might be a good solution (can anybody tell me which are the
> good super computers that I can use?) But supercomputers have a huge
> waiting time.
>
> I did some research, it seems that I have 2 options:
>
> 1. Buy at deal price(e.g. Dell) 4-5 old P4 computers, or even second hand
> computers, and build a clustering system. (I hope the cost is less than
> $2000) .
>
> 2. Buy Intel or AMD dual core/cpu or quad core/cpu computer. That's going to
> be around $2000 at least. And since the technology is quite new, so they
> might be over priced currently.
>
> In both cases, $2000 is a big number for me. I am willing to save a lot in
> order to build such a system. The reason is obvious: higher computing power
> means higher efficiency and higher productivity. It will pay off in the long
> run.
>
> Which option do you think that will give me the most performance gain with
> respect to my specific computation areas? Are the software able to utilize
> the hardware/system technology fully? Which option is most cost-effective
> and easy to maintain?
>
> I welcome specific system configuration examples and experiences, e.g. how
> many cluster computers do one dual-core computer compare to in terms of
> speed of computations? How about quad-core? Do they really justify their
> current high price? I'd like to hear field reports with some first hand
> statistics such as Matlab speedup numbers, comparisons, etc.
>
> Thanks a lot and happy new year!
>
Disclaimer: I have no experience with clusters. I have no specific advice
for solving your problem.
P3 vs. P4
Generally, from what I have read, the Intel "Core" series of processors
use Pentium 3 designs, which have superior floating point performance over
Pentium 4 designs. I recently built a Core 2 Duo system as a performance
workstation. The new system has dramatically better performance vs. the
older hardware (P3 based) it replaced. This is likely due to the faster
memory bus, and dual FPUs. The memtest program shows large numbers for the
processor's access speed to all memory. This upgrade cost about $900 and
appears to be a good value:
Case $ 50
350W Power ?
E6600 300
Gigabyte DS-3 150
2G 667MHz RAM 200
Disc, video, etc ?
VMWare...
You can start building a /* virtual */ cluster of machines using VMWare.
This obviously won't give any performance improvement vs. a real cluster.
In fact, performance will be slightly degraded by using virtualization.
The benefit is that you can build a /* test */ environment for your
cluster without the expense of having all of the hardware in advance.
You can design your virtual cluster by creating a prototype cluster node
on a virtual network. The cluster nodes can be moved to real hardware
as your finances permit. A big benefit of using a GNU/Linux based
cluster node is that the conversion from virtual to real hardware is
accomplished with minimal tweaking (possibly, as simple as fixing fstab
and the bootloader, and that's it.)
By using VMWare, you can start designing the solution to your problem,
with parallelization in mind. So be it that it will run slower while
in debugging; it will be ready to go and run faster (and correctly) when
you get appropriate computing resources.
--
Douglas Mayne
|
|
0
|
|
|
|
Reply
|
doug8182 (285)
|
12/31/2006 5:09:04 PM
|
|
gort wrote:
> < snipped>
>
> Do you think you two could do a bit of editing next time you post ?
>
> Dave
What are you talking about?
--
Dancin in the ruins tonight
Tayo'y Mga Pinoy
|
|
0
|
|
|
|
Reply
|
scrat (71)
|
12/31/2006 6:15:54 PM
|
|
Baho Utot wrote:
> Well I bought a Dell Insperion 1501 notebook with AMD turion x2 with 1 GB
> ram and 120MB HD for 800.
>
> So far I have had the cpu usage go past 50%.
>
So what? My machine has two hyperthreaded processors, so it looks like four
processors, and they all run at almost 100% This does not prove anything
other than I can find four compute-limited jobs to run. Mine run at nice 19
and they absorb all the cpu time not otherwise used by more important
processes. What is important is not whether or not the processors are fully
utilized, but whether a process you care about can get enough processor time.
14:24:32 up 71 days, 16:57, 3 users, load average: 4.17, 4.20, 4.11
127 processes: 121 sleeping, 5 running, 1 zombie, 0 stopped
CPU states: cpu user nice system irq softirq iowait idle
total 4.9% 90.7% 4.0% 0.0% 0.0% 0.0% 0.1%
cpu00 8.7% 84.8% 5.8% 0.1% 0.0% 0.0% 0.3%
cpu01 8.5% 85.7% 5.3% 0.0% 0.0% 0.0% 0.3%
cpu02 0.1% 98.3% 1.4% 0.0% 0.0% 0.0% 0.0%
cpu03 2.2% 93.8% 3.7% 0.0% 0.1% 0.0% 0.0%
--
.~. Jean-David Beyer Registered Linux User 85642.
/V\ PGP-Key: 9A2FC99A Registered Machine 241939.
/( )\ Shrewsbury, New Jersey http://counter.li.org
^^-^^ 14:20:01 up 71 days, 16:52, 3 users, load average: 4.19, 4.23, 4.10
|
|
0
|
|
|
|
Reply
|
jeandavid8 (968)
|
12/31/2006 7:25:37 PM
|
|
On Sat, 30 Dec 2006 18:42:17 -0800, "Mike" <housing2006@gmail.com>
wrote:
>Hi all,
>
>I need your advice/suggestions on which system to choose/purchase/build in
>order to do high performance computations.
[snip]
Before spending money on hardware you might want to look at your
software again - it is a lot cheaper.
Have you had a good look at your algorithms to see if there is a
faster algorithm available? The college machine should have a
profiler on it (talk to the operators) which will tell you where the
bottlenecks are in your programs.
Have you made your programs restartable? This will allow you do do
the run in pieces at different times rather than an all or nothing
single run.
Can you split up your programs into different ranges? For instance
one program is looking at cases A to F on one computer, another
program is looking at cases G to L on a second computer and so on. If
a program can be multi-threaded then it can often also be split into
different ranges instead, which can sae a lot of time in development.
rossum
|
|
0
|
|
|
|
Reply
|
rossum48 (643)
|
12/31/2006 8:46:36 PM
|
|
"General Schvantzkoph" <schvantzkoph@yahoo.com> wrote in message
news:4vovc0F1cnie8U3@mid.individual.net...
> On Sat, 30 Dec 2006 20:31:10 -0800, Mike wrote:
>
>> "General Schvantzkoph" <schvantzkoph@yahoo.com> wrote in message
>> news:4voreoF1cnie8U2@mid.individual.net...
>>> On Sat, 30 Dec 2006 18:42:17 -0800, Mike wrote:
>>>
>>>> Hi all,
>>>>
>>>> I need your advice/suggestions on which system to choose/purchase/build
>>>> in
>>>> order to do high performance computations.
>>>>
>>>> The software I mostly rely on are: Matlab, Mathematica, Maple, C/C++,
>>>> GSL,
>>>> GMP, MPFR, etc.
>>>>
>>>> The area of computations are numerical computation, symbolic
>>>> computation,
>>>> numerical optimization(about mid size).
>>>>
>>>> I am looking for cost-effective solutions using my own money as a
>>>> student
>>>> and this is not officially supported by any grant.
>>>>
>>>> The goal is to find a solution that can make the computation as fast as
>>>> possible. For example, my current program needs quite a few days to
>>>> finish,
>>>> and it may well take 10+ days. I have to make progress. The school
>>>> owned
>>>> small cluster is shared and the fair-usage policy makes it slow. The
>>>> supercomputers might be a good solution (can anybody tell me which are
>>>> the
>>>> good super computers that I can use?) But supercomputers have a huge
>>>> waiting time.
>>>>
>>>> I did some research, it seems that I have 2 options:
>>>>
>>>> 1. Buy at deal price(e.g. Dell) 4-5 old P4 computers, or even second
>>>> hand
>>>> computers, and build a clustering system. (I hope the cost is less than
>>>> $2000) .
>>>>
>>>> 2. Buy Intel or AMD dual core/cpu or quad core/cpu computer. That's
>>>> going
>>>> to
>>>> be around $2000 at least. And since the technology is quite new, so
>>>> they
>>>> might be over priced currently.
>>>>
>>>> In both cases, $2000 is a big number for me. I am willing to save a lot
>>>> in
>>>> order to build such a system. The reason is obvious: higher computing
>>>> power
>>>> means higher efficiency and higher productivity. It will pay off in the
>>>> long
>>>> run.
>>>>
>>>> Which option do you think that will give me the most performance gain
>>>> with
>>>> respect to my specific computation areas? Are the software able to
>>>> utilize
>>>> the hardware/system technology fully? Which option is most
>>>> cost-effective
>>>> and easy to maintain?
>>>>
>>>> I welcome specific system configuration examples and experiences, e.g.
>>>> how
>>>> many cluster computers do one dual-core computer compare to in terms of
>>>> speed of computations? How about quad-core? Do they really justify
>>>> their
>>>> current high price? I'd like to hear field reports with some first hand
>>>> statistics such as Matlab speedup numbers, comparisons, etc.
>>>>
>>>> Thanks a lot and happy new year!
>>>
>>> I've been doing a lot of benchmarking on my systems in the last few
>>> days.
>>> What I've found is that the Core2 Duo is generally about 25% faster on a
>>> clock for clock basis then the Athlon 64 X2 (with 1M caches, the 1/2M
>>> Cache version of the A64 is slower). In some cases the Core2 is as much
>>> as
>>> 65% faster. With respect to my old P4 Xeon system each core is between
>>> 210% and 350% faster than each processor in the Xeon system. What this
>>> says is that you shouldn't consider a cluster of P4s unless the P4
>>> systems
>>> can be had for less than $350 each. My Core2 Duo E6700 with 4G of DDR
>>> 800
>>> RAM cost me around $1.5K to build (got the parts from Newegg). You can
>>> save some money by buying slower RAM. The FSB on the Core2s is the
>>> bottleneck so anything faster than 533MHz (which exactly matches the FSB
>>> speed which is 1066MHz) is wasted. My measurements are showing that the
>>> performance difference between running the RAM at 533MHz and running it
>>> at
>>> 800MHz is only 1%. The Core2 also seems to be very overclockable. I was
>>> able to run at 3.2GHz using the stock Intel cooler for about 12 hours
>>> before the system crashed on me. My guess is that if you got a
>>> Thermaltake
>>> Big Typhoon cooler you could get away with overclocking the system which
>>> would give you a further 20% boost.
>>
>>
>> Thank you so much General Schvantzkoph for the invaluable information
>> consisting of both performance comparisons and cost analysis. That's
>> extremely helpful to me! I welcome more of such inputs.
>>
>> Could you also provide speedup statistics about applications such as
>> MATLAB,
>> Mathematica, Maple, GSL, GMP, MPFR, etc., in terms numerical/floating
>> point
>> computations and symbolic computations? That would be even greater!
>>
>> It looks that 1 core is about 3 single P4 CPUs from what you've
>> experienced.
>>
>> Considering networking bottlenecks, may I say a Quad-core system can
>> compete
>> with about 10-P4 CPU clustering system, in terms of performance in
>> scientific computations? If so, then that's very good.
>>
>> How about the stories from the AMD side? Anybody owns a AMD multi-core
>> system and/or AMD clustering systems?
>>
>> When will AMD make its Quad-core CPU available? Shall I wait for AMD's
>> Quad-core?
>>
>> Will I be able to build a Quad-core system with < $ 2000 ?
>>
>> Thanks a lot General Schvantzkoph and everybody!
>
> I don't know about Matlab. The applications that I use are NCVerilog,
> Xilinx and Altera FPGA tools, so that's what I've benchmarked. As I said
> in
> my earlier post most applications run about 25% faster (clock for clock)
> on the Core2. When NCVerilog is in the save state mode (recordvars on) it
> runs 69% faster on the Core2. The reason for that is that Cadence has
> really tuned NC to take advantage of cache and the Core2 has 4M of unified
> cache vs two 1M caches on the Athlon 64 X2 4400+.
>
> You should be able to build a quad core Intel machine for around $2100.
> Here is what I paid for my system, you'll need to add $500 for a quad
> cores (I got a dual core E6700 which is half the price of a quad core),
> about $100 for a disk drive and $30 for an SATA DVD ROM (I already had the
> drive and the DVD which is why they aren't in this list). Also I'm not
> thrilled with the Abit motherboard, LM Sensors doesn't work with it and it
> crashes if you use the On-Demand speed governors. This is the Newegg
> invoice,
>
> 11-112-100 CASE LIANLI|PC-60BPLUSII BLK RT 1 $129.99 $129.99
>
> 13-127-004 MB ABIT AB9 PRO P965 775 1 $145.99 $145.99
> Abit (510)-623-0500
> 14-121-009 VGA ASUS N EN7300LE/HTD/128M R 1 $51.99 $51.99
>
> 17-103-437 POWER SP|550WATXEG651P-VEFM(24P)RT 1 $109.99 $109.99
>
> 19-115-002 CPU INTEL|C2D E6700 2.66G 775 4M R 1 $509.99 $509.99
>
> 20-231-112 MEM 2Gx2|GSK F2-6400CL6D-4GBMQ % 1 $499.99 $499.99
Thanks a lot! That's very nice description. It is very helpful!
What motherboard do you recommend then?
|
|
0
|
|
|
|
Reply
|
housing2006 (283)
|
12/31/2006 9:47:23 PM
|
|
"Douglas Mayne" <doug@localhost.localnet> wrote in message
news:pan.2006.12.31.17.08.23.121323@localhost.localnet...
> On Sat, 30 Dec 2006 18:42:17 -0800, Mike wrote:
>
>> Hi all,
>>
>> I need your advice/suggestions on which system to choose/purchase/build
>> in
>> order to do high performance computations.
>>
>> The software I mostly rely on are: Matlab, Mathematica, Maple, C/C++,
>> GSL,
>> GMP, MPFR, etc.
>>
>> The area of computations are numerical computation, symbolic computation,
>> numerical optimization(about mid size).
>>
>> I am looking for cost-effective solutions using my own money as a student
>> and this is not officially supported by any grant.
>>
>> The goal is to find a solution that can make the computation as fast as
>> possible. For example, my current program needs quite a few days to
>> finish,
>> and it may well take 10+ days. I have to make progress. The school owned
>> small cluster is shared and the fair-usage policy makes it slow. The
>> supercomputers might be a good solution (can anybody tell me which are
>> the
>> good super computers that I can use?) But supercomputers have a huge
>> waiting time.
>>
>> I did some research, it seems that I have 2 options:
>>
>> 1. Buy at deal price(e.g. Dell) 4-5 old P4 computers, or even second hand
>> computers, and build a clustering system. (I hope the cost is less than
>> $2000) .
>>
>> 2. Buy Intel or AMD dual core/cpu or quad core/cpu computer. That's going
>> to
>> be around $2000 at least. And since the technology is quite new, so they
>> might be over priced currently.
>>
>> In both cases, $2000 is a big number for me. I am willing to save a lot
>> in
>> order to build such a system. The reason is obvious: higher computing
>> power
>> means higher efficiency and higher productivity. It will pay off in the
>> long
>> run.
>>
>> Which option do you think that will give me the most performance gain
>> with
>> respect to my specific computation areas? Are the software able to
>> utilize
>> the hardware/system technology fully? Which option is most cost-effective
>> and easy to maintain?
>>
>> I welcome specific system configuration examples and experiences, e.g.
>> how
>> many cluster computers do one dual-core computer compare to in terms of
>> speed of computations? How about quad-core? Do they really justify their
>> current high price? I'd like to hear field reports with some first hand
>> statistics such as Matlab speedup numbers, comparisons, etc.
>>
>> Thanks a lot and happy new year!
>>
> Disclaimer: I have no experience with clusters. I have no specific advice
> for solving your problem.
>
> P3 vs. P4
> Generally, from what I have read, the Intel "Core" series of processors
> use Pentium 3 designs, which have superior floating point performance over
> Pentium 4 designs. I recently built a Core 2 Duo system as a performance
> workstation. The new system has dramatically better performance vs. the
> older hardware (P3 based) it replaced. This is likely due to the faster
> memory bus, and dual FPUs. The memtest program shows large numbers for the
> processor's access speed to all memory. This upgrade cost about $900 and
> appears to be a good value:
>
> Case $ 50
> 350W Power ?
> E6600 300
> Gigabyte DS-3 150
> 2G 667MHz RAM 200
> Disc, video, etc ?
>
> VMWare...
> You can start building a /* virtual */ cluster of machines using VMWare.
> This obviously won't give any performance improvement vs. a real cluster.
> In fact, performance will be slightly degraded by using virtualization.
> The benefit is that you can build a /* test */ environment for your
> cluster without the expense of having all of the hardware in advance.
> You can design your virtual cluster by creating a prototype cluster node
> on a virtual network. The cluster nodes can be moved to real hardware
> as your finances permit. A big benefit of using a GNU/Linux based
> cluster node is that the conversion from virtual to real hardware is
> accomplished with minimal tweaking (possibly, as simple as fixing fstab
> and the bootloader, and that's it.)
>
> By using VMWare, you can start designing the solution to your problem,
> with parallelization in mind. So be it that it will run slower while
> in debugging; it will be ready to go and run faster (and correctly) when
> you get appropriate computing resources.
>
> --
> Douglas Mayne
Aha, using VMWARE do build virtual cluster is really a great idea! I like it
very much.
How about a building a virtual multi-core program?
I currently don't own a multi-core PC and am waiting for deal time to get
such a PC. However, I'd like start learning the ropes and doing programming
with multi-core in my mind...
Can VMWARE help me do that?
Is there a way to write a program that can run on single CPU PC and on
multi-core and multi-mode cluster without any modification?
Thanks a lot
|
|
0
|
|
|
|
Reply
|
housing2006 (283)
|
12/31/2006 9:51:57 PM
|
|
"Rob Thorpe" <rthorpe@realworldtech.com> wrote in message
news:1167569068.765669.318710@v33g2000cwv.googlegroups.com...
> Mike wrote:
>> <jimmaureenrogers@worldnet.att.net> wrote in message
>> news:1167535199.579408.303810@k21g2000cwa.googlegroups.com...
>> > Mike wrote:
>> >> Hi all,
>> >>
>> >> I need your advice/suggestions on which system to
>> >> choose/purchase/build
>> >> in
>> >> order to do high performance computations.
>> >>
>> >> The software I mostly rely on are: Matlab, Mathematica, Maple, C/C++,
>> >> GSL,
>> >> GMP, MPFR, etc.
>> >>
>> >> The area of computations are numerical computation, symbolic
>> >> computation,
>> >> numerical optimization(about mid size).
>> >>
>> > ...
>> >> I did some research, it seems that I have 2 options:
>> >>
>> >> 1. Buy at deal price(e.g. Dell) 4-5 old P4 computers, or even second
>> >> hand
>> >> computers, and build a clustering system. (I hope the cost is less
>> >> than
>> >> $2000) .
>> >>
>> >> 2. Buy Intel or AMD dual core/cpu or quad core/cpu computer. That's
>> >> going
>> >> to
>> >> be around $2000 at least. And since the technology is quite new, so
>> >> they
>> >> might be over priced currently.
>> >
>> > You will only achieve the desired performance increase on a cluster or
>> > a multi-core computer if your application(s) are either multi-process
>> > or multi-threaded. A single-threaded application is not going to
>> > demonstrate any significant performance increase on a multi-core
>> > system.
>> >
>> > Are your numerical applications already designed for parallel
>> > computation?
>> >
>> > Jim Rogers
>> >
>>
>> On one hand, I need computing power for various programs. Some programs
>> will
>> be written by myself in C/C++, that I can control. Please tell me which
>> multi-process or multi-thread programming skill I need to learn?
>>
>> You mention both multi-process and multi-thread programming? I have to
>> learn
>> both? Which libraries are the best for each cases? I am guessing that for
>> dual/quad core programming, I need multi-thread; for clustering, I need
>> multi-process? Am I right?
>
> Multithreaded programs have:-
> * More than one thread of executing code.
> * Normally only one memory space shared by all the threads.
> Multiprocess programs have:-
> * More than one thread of executing code.
> * More than one memory space. Often one per thread of code.
>
> Multi-core processors and SMP(symmetrical multi-processor) machines can
> be programmed in both ways. Multi-core processors are only SMP systems
> built on a single chip.
>
> Clusters are different. They are connected together with much slower
> interconnects than SMP machines or multi-core processors. To program
> them in parallel you must use multiple processes, and, normally some
> kind of library to communicate between the multiple processes. It is
> more difficult than using SMP.
>
> Generally multi-X programming is more difficult than single-threaded,
> single-process programming. If you are writing code just for research
> then it's worth avoiding because it will take you more time. So, my
> advice is get the machine with the fastest single-threaded performance
> you can find. These days that machine will probably be dual-core.
>
From what I see these days, it looks like multp-core/process
clustering/supercomputer/distributed programming in the future is just like
C/C++ programming today, which is an essential tool that is a MUST for every
scientific engineer/researcher. Is it fair to say this?
If this statement is correct, then maybe it pays off to learn from now to
save time in the long run. What do you think?
|
|
0
|
|
|
|
Reply
|
housing2006 (283)
|
12/31/2006 10:28:57 PM
|
|
"Rune Allnor" <allnor@tele.ntnu.no> wrote in message
news:1167570216.319427.322530@a3g2000cwd.googlegroups.com...
>
> Mike skrev:
>>
>> On one hand, I need computing power for various programs. Some programs
>> will
>> be written by myself in C/C++, that I can control. Please tell me which
>> multi-process or multi-thread programming skill I need to learn?
>>
>> You mention both multi-process and multi-thread programming? I have to
>> learn
>> both? Which libraries are the best for each cases? I am guessing that for
>> dual/quad core programming, I need multi-thread; for clustering, I need
>> multi-process? Am I right?
>>
>> I am looking for a solution... Thanks a lot for your advice!
>
> It seems you do not have a particularly suitable starting point
> for doing multi-threading analysis or programming. On the short
> term (i.e. to get through with your thesis and get your degree),
> I'll suggest you take the "loss" and either accept the low perfomance
> of your school's cluster, or wait for time on a supercomputer.
>
> If you start a project as you indicate, be prepared to spend a lot
> of time on learning before you get any sort of results. I would
> suggest you start out in one of two ways, just to learn the basics:
>
> 1) Get two cheap 2nd hand computers and try to make them work
> in cluster. You will spend a bit of time to achieve this; computers
> that
> are state-of-the-art now are likely to be obsolete by the time you
> are finished.
>
> 2) Get a low-cost duo-core computer and learn multi-threading there.
> Again, you will likely spend a bit of time learning the basics,
> so don't spend any huge amounts of $$ on this.
>
> Rune
>
From what I see these days, it looks like multp-core/process
clustering/supercomputer/distributed programming in the future is just like
C/C++ programming today, which is an essential tool that is a MUST for every
scientific engineer/researcher. Is it fair to say this?
If this statement is correct, then maybe it pays off to learn from now to
save time in the long run. What do you think?
|
|
0
|
|
|
|
Reply
|
housing2006 (283)
|
12/31/2006 10:30:16 PM
|
|
On Sun, 31 Dec 2006 13:51:57 -0800, Mike wrote:
<snip>
>
> Aha, using VMWARE do build virtual cluster is really a great idea! I like it
> very much.
>
> How about a building a virtual multi-core program?
Yes. Just setup your vmware machines with multiple processors. Boot the
virtual machines with an SMP kernel.
>
> I currently don't own a multi-core PC and am waiting for deal time to
> get such a PC. However, I'd like start learning the ropes and doing
> programming with multi-core in my mind...
If you have a budget for a new PC, then as I said a system with 2G of RAM
and a E6600 is not too expensive. Your budget may vary, but you mentioned
something about $2000
>
> Can VMWARE help me do that?
It can't hurt. ;-) You'll likely come up against similar problems under
either environment (virtual or real.) My point is this: if you have
already worked out the problems of simple clusters in advance using a
virtual environment, you will be that much further along building your
first real cluster.
>
> Is there a way to write a program that can run on single CPU PC and on
> multi-core and multi-mode cluster without any modification?
Yes. The linux kernel can be compiled for SMP. It still boots on systems
with a single CPU. This isn't a cluster related problem. See comments
below: SMP vs. Parrellization.
>
> Thanks a lot
>
Note: comments inline.
Please do not confuse SMP with parallel computing environments (clusters).
Perhaps, some work at the fundamental level is in order here:
http://en.wikipedia.org/wiki/Symmetric_multiprocessing
http://en.wikipedia.org/wiki/Parallel_computing
Also, building a cluster as a "first" GNU/Linux project is not possible,
IMO. You'll need to understand the fundamentals of GNU/Linux setup,
bootstrap, and networking. Jump in there, and be confident of those skills
before attempting to build a cluster. That said, the documentation is out
there for every piece of the puzzle. I know people have had success
building simple clusters in their basements. If you need this for
school, then you may be willing to put in the effort necessary to
achieve your goal. Oh, and, one more thing, check your breakers before
starting, too. ;-)
--
Douglas Mayne
|
|
0
|
|
|
|
Reply
|
doug8182 (285)
|
12/31/2006 10:45:01 PM
|
|
On Sun, 31 Dec 2006 14:30:16 -0800, "Mike" <housing2006@gmail.com>
wrote:
>
>From what I see these days, it looks like multp-core/process
>clustering/supercomputer/distributed programming in the future is just like
>C/C++ programming today, which is an essential tool that is a MUST for every
>scientific engineer/researcher. Is it fair to say this?
>
Fair is to say that if proper responding to Usenet messages is too
hard for you (such as cutting quotes) then I don't see slightest
chance that you will be able to build any computer. Not saying about
programming multicore processor.
A.L.
|
|
0
|
|
|
|
Reply
|
alewando1 (105)
|
12/31/2006 10:48:35 PM
|
|
"A.L." <alewando@fala2005.com> wrote in message
news:2efgp2tqnfpe8bi6tcgvqs0rrt0otg3db1@4ax.com...
> On Sun, 31 Dec 2006 14:30:16 -0800, "Mike" <housing2006@gmail.com>
> wrote:
>
>
>>
>>From what I see these days, it looks like multp-core/process
>>clustering/supercomputer/distributed programming in the future is just
>>like
>>C/C++ programming today, which is an essential tool that is a MUST for
>>every
>>scientific engineer/researcher. Is it fair to say this?
>>
>
> Fair is to say that if proper responding to Usenet messages is too
> hard for you (such as cutting quotes) then I don't see slightest
> chance that you will be able to build any computer. Not saying about
> programming multicore processor.
>
> A.L.
I don't think you have to be that mean for some negligence.
|
|
0
|
|
|
|
Reply
|
housing2006 (283)
|
12/31/2006 11:15:17 PM
|
|
Mike skrev:
> "Rune Allnor" <allnor@tele.ntnu.no> wrote in message
> > 2) Get a low-cost duo-core computer and learn multi-threading there.
> > Again, you will likely spend a bit of time learning the basics,
> > so don't spend any huge amounts of $$ on this.
> >
> > Rune
> >
>
>
> From what I see these days, it looks like multp-core/process
> clustering/supercomputer/distributed programming in the future is just like
> C/C++ programming today, which is an essential tool that is a MUST for every
> scientific engineer/researcher. Is it fair to say this?
I don't know if I would state it quite as pointed as that, but it is
certainly useful to know what can and what can not be done
with multi-CPU systems. Memory management is one of those
details that was the big limiter when I looked into these things
some 7 or 8 years ago.
> If this statement is correct, then maybe it pays off to learn from now to
> save time in the long run. What do you think?
The time in university is the time to learn. That's when you
manage your own time.
Rune
|
|
0
|
|
|
|
Reply
|
allnor (8474)
|
12/31/2006 11:25:13 PM
|
|
On Sun, 31 Dec 2006 13:47:23 -0800, "Mike" <housing2006@gmail.com>
wrote:
>Thanks a lot! That's very nice description. It is very helpful!
>
>What motherboard do you recommend then?
>
>
I recommend cutting quotes. It has no sense (and is not polite) to
quote 3 page of trash to add your own 2 sentences.
A.L.
|
|
0
|
|
|
|
Reply
|
alewando1 (105)
|
12/31/2006 11:29:39 PM
|
|
Baho Utot wrote:
> gort wrote:
>
>> < snipped>
>>
>> Do you think you two could do a bit of editing next time you post ?
>
> What are you talking about?
See the following links.
--
Some informative links:
<http://members.fortunecity.com/nnqweb/> (newusers)
<http://www.catb.org/~esr/faqs/smart-questions.html>
<http://www.caliburn.nl/topposting.html>
<http://www.netmeister.org/news/learn2quote.html>
<http://cfaj.freeshell.org/google/> (taming google)
|
|
0
|
|
|
|
Reply
|
cbfalconer (19183)
|
1/1/2007 12:40:15 AM
|
|
On Sun, 31 Dec 2006 17:29:39 -0600, A.L. wrote:
> On Sun, 31 Dec 2006 13:47:23 -0800, "Mike" <housing2006@gmail.com>
> wrote:
>
>>Thanks a lot! That's very nice description. It is very helpful!
>>
>>What motherboard do you recommend then?
>>
>>
>
> I recommend cutting quotes. It has no sense (and is not polite) to
> quote 3 page of trash to add your own 2 sentences.
>
> A.L.
I recommend that you turn on "Mute" in your news reader.
|
|
0
|
|
|
|
Reply
|
schvantzkoph (1875)
|
1/1/2007 3:57:25 AM
|
|
On 1 Jan 2007 03:57:25 GMT, General Schvantzkoph
<schvantzkoph@yahoo.com> wrote:
>On Sun, 31 Dec 2006 17:29:39 -0600, A.L. wrote:
>
>> On Sun, 31 Dec 2006 13:47:23 -0800, "Mike" <housing2006@gmail.com>
>> wrote:
>>
>>>Thanks a lot! That's very nice description. It is very helpful!
>>>
>>>What motherboard do you recommend then?
>>>
>>>
>>
>> I recommend cutting quotes. It has no sense (and is not polite) to
>> quote 3 page of trash to add your own 2 sentences.
>>
>> A.L.
>
>I recommend that you turn on "Mute" in your news reader.
I recomment that you Mute yourself.
A.L.
|
|
0
|
|
|
|
Reply
|
alewando1 (105)
|
1/1/2007 4:25:48 AM
|
|
On 1 Jan 2007 03:57:25 GMT
General Schvantzkoph <schvantzkoph@yahoo.com> wrote:
> On Sun, 31 Dec 2006 17:29:39 -0600, A.L. wrote:
>
> > I recommend cutting quotes. It has no sense (and is not polite) to
> > quote 3 page of trash to add your own 2 sentences.
> >
> > A.L.
>
> I recommend that you turn on "Mute" in your news reader.
Making the context invisible is counter productive and beside the
point. Not trimming messages wastes bandwidth and storage.
--
C:>WIN | Directable Mirror Arrays
The computer obeys and wins. | A better way to focus the sun
You lose and Bill collects. | licences available see
| http://www.sohara.org/
|
|
0
|
|
|
|
Reply
|
steveo (455)
|
1/1/2007 7:37:30 AM
|
|
>> I recommend cutting quotes. It has no sense (and is not polite) to
>> quote 3 page of trash to add your own 2 sentences.
>>
>> A.L.
>
> I recommend that you turn on "Mute" in your news reader.
General Schvantzkoph,
Happy new year! I just wanna to ask if I also want a 64bit system,
does the Quad-core CPU have that feature?
I hope multi-core and 64bit are not mutually exclusive. To break the
bottleneck of Matlab "out-of-memory" problem, I guess I really need a 64bit
system...
Thanks a lot!
|
|
0
|
|
|
|
Reply
|
housing2006 (283)
|
1/1/2007 9:17:34 AM
|
|
On Mon, 01 Jan 2007 01:17:34 -0800, Mike wrote:
>>> I recommend cutting quotes. It has no sense (and is not polite) to
>>> quote 3 page of trash to add your own 2 sentences.
>>>
>>> A.L.
>>
>> I recommend that you turn on "Mute" in your news reader.
>
> General Schvantzkoph,
>
> Happy new year! I just wanna to ask if I also want a 64bit system,
>
> does the Quad-core CPU have that feature?
>
> I hope multi-core and 64bit are not mutually exclusive. To break the
> bottleneck of Matlab "out-of-memory" problem, I guess I really need a 64bit
> system...
>
> Thanks a lot!
All of the new processors are 64 bit. If you put 4G of DDR2 or more in
your system you'll want to run 64 bit Linux, if you have less than you'll
probably want to run 32 bit Linux. I don't know how Matlab behaves, you'll
have to test that yourself. NCVerilog runs about 30% slower in 64 bits
then it does in 32 bits so I normally run it in 32 bit mode rather than
the 64 bit mode (you can run both 32 and 64 bit binaries on 64 bit Linux).
Matlab is a floating point application so it's possible that it might run
faster in 64 bits then in 32 bits. The 64 bit extensions added more
registers which should speed programs up, however the increased memory
requirements caused by doubling the size of integers and pointers slows
programs down. Matlab mostly does floating point matrix arithmetic
so I'd guess that the effect of the double sized pointers won't hurt it
very much and that the extra registers would more than make up for the
loss that the larger pointers cause. My guess is that Matlab will be a
little faster in 64 bits, but you'll have to make your own measurements.
BTW NewEgg is selling GSkill 2G DDR2 DIMMs for $500 a pair which is about
the same price/Gbyte as the smaller 1G DDR2. You'll need a lot of RAM so
you'll want to use 2G DIMMs which will give you the option of having 8G
in your system. I'm using the GSkill 2G DIMMs in my system, I've just got
4G at the moment, I'll probably put another 4G in next year when the price
for 2G DIMMs fall further.
|
|
0
|
|
|
|
Reply
|
schvantzkoph (1875)
|
1/1/2007 2:33:30 PM
|
|
> I need your advice/suggestions on which system to choose/purchase/build in
> order to do high performance computations.
With low budget you need to think carefully your strategy
1: try to minimize the hardware requirements : tune the codes
2: if you have lot of programs to run try to use the GRID for all the
heavy workloads
3: try to get access to a bigger lab , some labs give away some cycles
to researchers
4: at the end buy INTEL quad cores , they will deliver best throughput
per $
Good luck
|
|
0
|
|
|
|
Reply
|
dmlpat (1)
|
1/1/2007 10:57:16 PM
|
|
Mike wrote:
> "Rob Thorpe" <rthorpe@realworldtech.com> wrote in message
> news:1167569068.765669.318710@v33g2000cwv.googlegroups.com...
> > Mike wrote:
> >> <jimmaureenrogers@worldnet.att.net> wrote in message
> >> news:1167535199.579408.303810@k21g2000cwa.googlegroups.com...
> >> > Mike wrote:
> >> >> Hi all,
> >> >>
> >> >> I need your advice/suggestions on which system to
> >> >> choose/purchase/build
> >> >> in
> >> >> order to do high performance computations.
> >> >>
> >> >> The software I mostly rely on are: Matlab, Mathematica, Maple, C/C++,
> >> >> GSL,
> >> >> GMP, MPFR, etc.
> >> >>
> >> >> The area of computations are numerical computation, symbolic
> >> >> computation,
> >> >> numerical optimization(about mid size).
> >> >>
> >> > ...
> >> >> I did some research, it seems that I have 2 options:
> >> >>
> >> >> 1. Buy at deal price(e.g. Dell) 4-5 old P4 computers, or even second
> >> >> hand
> >> >> computers, and build a clustering system. (I hope the cost is less
> >> >> than
> >> >> $2000) .
> >> >>
> >> >> 2. Buy Intel or AMD dual core/cpu or quad core/cpu computer. That's
> >> >> going
> >> >> to
> >> >> be around $2000 at least. And since the technology is quite new, so
> >> >> they
> >> >> might be over priced currently.
> >> >
> >> > You will only achieve the desired performance increase on a cluster or
> >> > a multi-core computer if your application(s) are either multi-process
> >> > or multi-threaded. A single-threaded application is not going to
> >> > demonstrate any significant performance increase on a multi-core
> >> > system.
> >> >
> >> > Are your numerical applications already designed for parallel
> >> > computation?
> >> >
> >> > Jim Rogers
> >> >
> >>
> >> On one hand, I need computing power for various programs. Some programs
> >> will
> >> be written by myself in C/C++, that I can control. Please tell me which
> >> multi-process or multi-thread programming skill I need to learn?
> >>
> >> You mention both multi-process and multi-thread programming? I have to
> >> learn
> >> both? Which libraries are the best for each cases? I am guessing that for
> >> dual/quad core programming, I need multi-thread; for clustering, I need
> >> multi-process? Am I right?
> >
> > Multithreaded programs have:-
> > * More than one thread of executing code.
> > * Normally only one memory space shared by all the threads.
> > Multiprocess programs have:-
> > * More than one thread of executing code.
> > * More than one memory space. Often one per thread of code.
> >
> > Multi-core processors and SMP(symmetrical multi-processor) machines can
> > be programmed in both ways. Multi-core processors are only SMP systems
> > built on a single chip.
> >
> > Clusters are different. They are connected together with much slower
> > interconnects than SMP machines or multi-core processors. To program
> > them in parallel you must use multiple processes, and, normally some
> > kind of library to communicate between the multiple processes. It is
> > more difficult than using SMP.
> >
> > Generally multi-X programming is more difficult than single-threaded,
> > single-process programming. If you are writing code just for research
> > then it's worth avoiding because it will take you more time. So, my
> > advice is get the machine with the fastest single-threaded performance
> > you can find. These days that machine will probably be dual-core.
> >
>
> From what I see these days, it looks like multp-core/process
> clustering/supercomputer/distributed programming in the future is just like
> C/C++ programming today, which is an essential tool that is a MUST for every
> scientific engineer/researcher. Is it fair to say this?
For programmers who must write high-performance programs that is
probably true. Scientific researchers sometimes fall into that
category. But do not underestimate the amount of time that coding
takes. Coding for multi-processing normally takes longer too, and
often algorithmic improvements are more helpful than multi-processing.
> If this statement is correct, then maybe it pays off to learn from now to
> save time in the long run. What do you think?
If you have a program that you need to write now you should probably
ignore multi-processing buy the fastest machine you can and write it
single-threaded. If you are only trying to learn more, with no hard
timetable on some end-product, then it would be a good thing to learn
about multi-processing and clustering.
|
|
0
|
|
|
|
Reply
|
rthorpe (232)
|
1/2/2007 11:12:52 AM
|
|
rossum wrote:
> On Sat, 30 Dec 2006 18:42:17 -0800, "Mike" <housing2006@gmail.com>
> wrote:
>
> >Hi all,
> >
> >I need your advice/suggestions on which system to choose/purchase/build in
> >order to do high performance computations.
>
> [snip]
>
> Before spending money on hardware you might want to look at your
> software again - it is a lot cheaper.
Exactly. Mike, if your still listening, read Rossums post and learn.
> Have you had a good look at your algorithms to see if there is a
> faster algorithm available? The college machine should have a
> profiler on it (talk to the operators) which will tell you where the
> bottlenecks are in your programs.
>
> Have you made your programs restartable? This will allow you do do
> the run in pieces at different times rather than an all or nothing
> single run.
Good thing to do in general if they sometimes crash and need debugging
too.
Sometimes it's easy too. In Lisp you can make a program save a binary
image of itself every few minutes for example, then later restart the
image. In some types of simulation work it's easy to split out the
data to save anyway.
> Can you split up your programs into different ranges? For instance
> one program is looking at cases A to F on one computer, another
> program is looking at cases G to L on a second computer and so on. If
> a program can be multi-threaded then it can often also be split into
> different ranges instead, which can sae a lot of time in development.
One of my favourite parallelism methods.
You can also automate it by having a queue of jobs and a program to
distribute them between machines. This is often much simpler than
multi-programming, and more portable.
|
|
0
|
|
|
|
Reply
|
rthorpe (232)
|
1/2/2007 11:40:15 AM
|
|
Rob Thorpe wrote:
> Mike wrote:
> > "Rob Thorpe" <rthorpe@realworldtech.com> wrote in message
> > news:1167569068.765669.318710@v33g2000cwv.googlegroups.com...
> > > Mike wrote:
> > >> <jimmaureenrogers@worldnet.att.net> wrote in message
> > >> news:1167535199.579408.303810@k21g2000cwa.googlegroups.com...
> > >> > Mike wrote:
<snip>
> If you have a program that you need to write now you should probably
> ignore multi-processing buy the fastest machine you can and write it
> single-threaded. If you are only trying to learn more, with no hard
> timetable on some end-product, then it would be a good thing to learn
> about multi-processing and clustering.
To put it another way, one of the most common reasons for students to
overrun their PhDs is that they try to use them as an opportunity to
learn lots of advanced programming.
You may be interested in this article:-
http://www.realworldtech.com/page.cfm?ArticleID=RWT121106171654
|
|
0
|
|
|
|
Reply
|
rthorpe (232)
|
1/2/2007 11:48:35 AM
|
|
Rob Thorpe wrote:
> But do not underestimate the amount of time that coding
> takes. Coding for multi-processing normally takes longer too, and
> often algorithmic improvements are more helpful than multi-processing.
Coding up advanced algorithms tends to take a comparatively long time
too, and it gets worse if you have to try several of them to find which
(if any) gives a useful performance boost in practise. Exploiting
coarse-grained parallelism is probably the simplest and most
cost-effective way of getting significant performance boosts (assuming
it's possible at all). "Just throw more hardware at the problem", as
they say.
-- chris
|
|
0
|
|
|
|
Reply
|
chris.uppal (3970)
|
1/2/2007 2:44:13 PM
|
|
|
36 Replies
34 Views
(page loaded in 0.449 seconds)
|