[Beowulf] A start in Parallel Programming?
landman at scalableinformatics.com
Mon Mar 19 11:05:25 PDT 2007
Mitchell Wisidagamage wrote:
>> C for damn sure isn't "safe". Neither is assembler. Very few compilers
>> could be called safe in the sense that it is impossible to write buggy
>> code that is vulnerable to various exploits or at risk of crashing an
>> application, but C is arguably more dangerous than most because with
>> pointers and inlined assembler you can do "anything".
The way I have heard/regurgitated it for people has been:
Assembler gives you enough rope to blow your own toes off with. This
mixes two metaphors: 1) enough rope to hang yourself, and 2) enough
firepower to blow your own toes off.
While Assembler gives you the power to do this, C makes it easy.
With great power comes great responsibility (to use it wisely, and keep
all of ones toes intact). Also opens up the possibility of massive abuse.
That said, some careful programming in C can give you excellent
performance. You can write very close to the metal ... er ... silicon.
This allows you to micro-optimize for the platform (and hyper-specialize
to it). I would prefer if compilers would do this for us, and have been
assured that it is a SMOP and a matter of time.... ( :^ )
The higher levels you work at in abstraction, generally the slower the
performance of the code. But then the higher levels of abstraction
generally map better into our own thought processes.
Here is a great way to do LU decomposition of a matrix in Octave/Matlab:
[l , u , p ] = lu ( a );
This takes matrix a and represents it as a lower triangular, an upper
triangular, and a permutation matrix. C.f.
While using this is a great way to write out what you want to do at a
higher (more abstract) level, writing out an LU solver in C (a good one
that performs well) is quite a bit harder. And more prone to error than
using the above.
You make your choices, and you pay the cost of the choices.
Joseph Landman, Ph.D
Founder and CEO
Scalable Informatics LLC,
email: landman at scalableinformatics.com
web : http://www.scalableinformatics.com
phone: +1 734 786 8423
fax : +1 734 786 8452 or +1 866 888 3112
cell : +1 734 612 4615
More information about the Beowulf