Kyle, I know it's easy to always say "study more"; I'm sure your professors have plenty for you to do. However, if you want to program stuff yourself, I urge you accept (at least) two languages. C/C++ is the only way to go for such things as linux kernel hacking. LISP is a huge window of insight into AI and is a completely different way of thinking. But particularly, I don't think we start to understand prgramming at a higher level until we have learned two; it's like, we learn English from constant use, but we don't grok "past pluperfect" until someone tries to teach us French. Right now you are in a perfect environment to learn and use both. You don't need to become a Language Lawyer in either. The great fun of computing is that you can tinker with your own working models of anything. Write a compiler, a database, a network, a finite representation of p-adics, whatever you want, for any of your classes. So coding, like reading and writing, is a basic useful skill :-) Similarly, in math, I urge you to take at least a little in each of Algebra, Geometry, and Analysis :-) Peter
On 3/13/07, Kyle Spaans <[EMAIL PROTECTED]> wrote:
Hello Beowulf list. Some of you may remember me from earlier in the summer. Well, after nearly a year of lurking, I'm back! As a background update: I'm at the University of Waterloo, studying math in a program called Computational Math [solving problems computationally, sound familiar? haw haw haw]. I'm taking a good variety of courses [Maths, CS, Physics, and French]. I've gotten through my first semester OK, and currently I'm living near Toronto on my 4-month Co-op work term. I just read this article, <http://arstechnica.com/articles/paedia/hardware/physx-hpc.ars>, and it has rekindled my desire to get started in parallel and multi-threaded programming. By now, I'm plenty comfortable with Linux [had to compile a custom kernel to get Linux to work on my desktop because the hard drive controller didn't have drivers in the kernel], and I've got access to lots of old and cheap computers. I've got even more computers waiting for me, with remote access, at my dad's house [more specifically three dual 2GHz Xeon rigs with a gig of Rambus DRAM each]. Before I fully entrench myself with getting the cluster setup, I want to make sure I can at least write some trivial parallel code that I can USE on my cluster. Thanks to all your earlier emails, I've got a good list of little problems I can start out with, not to mention problems from my math classes. My question now is, how? Please let me know if any of these are FAQs or Google'able, I'm a capable RTFM'er but I just haven't found answers to these questions yet. Do I really need MPI/OpenMPI/OpenMP/PVM? If so, does that mean I should suck it up and learn Fortran/C/C++? Or can I just devise my own message passing system to help me parallelize the workload? For example, TCP sockets were mentioned. In my CS class I learned Scheme [a dialect of LISP], and I know Scheme can work with TCP sockets. It has also gotten me very interested in the Functional Programming paradigm [but is it ideal for parallel programming?]. If possible, I'd like to stick with Scheme for now, as it'll make my CS class coming up this summer all the more interesting. Speed isn't what I'm worried about right now, I just want to get started thinking about and writing parallel code. Thanks for your help! _______________________________________________ Beowulf mailing list, Beowulf@beowulf.org To change your subscription (digest mode or unsubscribe) visit http://www.beowulf.org/mailman/listinfo/beowulf
_______________________________________________ Beowulf mailing list, Beowulf@beowulf.org To change your subscription (digest mode or unsubscribe) visit http://www.beowulf.org/mailman/listinfo/beowulf