Seti@Home optimized science apps and information
 
Welcome, Guest. Please login or register.
Did you miss your activation email?
09 Nov 2007, 07:35:23 am

Login with username, password and session length
 
If you've registered already but never got your activation email, please click here.
 
 
Seti@Home optimized science apps and information  |  Optimized Seti@Home apps  |  Discussion Forum  |  Topic: Idle Questions about Coding 0 Members and 0 Guests are viewing this topic. « previous next »
Pages: [1] Go Down Print
Author Topic: Idle Questions about Coding  (Read 365 times)
Fivestar Crashtest
Pre-Release Tester
Knight o' the Realm
***
Offline Offline

Posts: 49



View Profile
Idle Questions about Coding
« on: 11 Oct 2007, 09:59:09 pm »

I was looking at Tony's outreach to AMD over at their developer forum and at what they offer for development tools.  I got to wondering what it takes to be able to use those tools.

How many years of school would I have to go to to learn to do what you guys are doing here?  Or are there some books I could read to get into the optimizing game? 

Regards,

Pam
Logged

All your base are belong to us!  You have no chance to survive, make your time!
michael37
Pre-Release Tester
Knight o' the round Table
***
Offline Offline

Posts: 116


View Profile
Re: Idle Questions about Coding
« Reply #1 on: 12 Oct 2007, 12:25:49 am »

I was looking at Tony's outreach to AMD over at their developer forum and at what they offer for development tools.  I got to wondering what it takes to be able to use those tools.

How many years of school would I have to go to to learn to do what you guys are doing here?  Or are there some books I could read to get into the optimizing game? 

Regards,

Pam

My opinion is that you don't need no school to learn programming.  You need to have desire to learn, and then learn new stuff any chance you get.  How much programming do you know?  Are you able to read the code for seti?

Logged
msattler
Pre-Release Tester
Knight o' the round Table
***
Offline Offline

Posts: 206


View Profile
Re: Idle Questions about Coding
« Reply #2 on: 12 Oct 2007, 02:12:59 am »

I am under the impression that one could use some background in mathematics to understand some of the things that are done to process Seti data, aside from being able to manipulate the code itself.  Anybody that can do this kind of work has my total respect.
Logged
Fivestar Crashtest
Pre-Release Tester
Knight o' the Realm
***
Offline Offline

Posts: 49



View Profile
Re: Idle Questions about Coding
« Reply #3 on: 12 Oct 2007, 11:34:11 am »

Well, I was a chemistry major and as a synthetic chemist, I didn't use much calculus and diff eq, although I took those classes.  I took some computer classes, even though I didn't need them.  We were programming Fortran on cards back then. 

I am under the impression learning C++ would be a good thing.  I just wondered if that is a good start.  I found a book on Amazon that will teach it to me in three weeks.

Pam
Logged

All your base are belong to us!  You have no chance to survive, make your time!
j_groothu
Knight o' the round Table
***
Online Online

Posts: 101


View Profile
Re: Idle Questions about Coding
« Reply #4 on: 12 Oct 2007, 12:07:59 pm »

The last week has been intersting journey for me,  I can tell you than the seti science app code isn't really friendly in places.

If you worked with FORTRAN (great language Cheesy ) then In my opinion:
If you can learn about C++ first (maybe even try one of the "in 30 days" type books), then learn just enough ordinary C to read others legacy code, that would probably put you in good stead. This way around avoids learning some bad habits, and would be enough (with some effort) to get you to compile the science app (provided you don't look inside too hard and get confused at this point)

For larger projects, interaction with the OS, and architecture of the processors is trending to favour the idea of compact efficient classes and objects (think cache, pipelines and alignment),  Rather than long streams of branchy procedural code.  This would mean the most reuseability and productivity,  You would probably want some more advanced software engineering in Object Oriented techniques then because your understanding has outgrown your programming skills, or vice versa.

Then you can focus on optimisation which requires hardware knowledge and is much more specialist as you have to read other peoples "non_C++" code, much of it can be quite arcane and nothing whatsoever to do with objects Cheesy  more like Assembly.  or maybe even a little like particularly loopy and arcane FORTRAN code you might have seen.

example: seti science app is a lot of different people's work over many years.  It seems to be originally procedural C code, with a smattering of interface C++.  The optimised parts are mostly compiler intrinsics, which are an alternate (slightly more portable)  form of assembly, implementing the SSEn bits.

This makes for one mother of a spaghetti pile that will send you crosseyed, but it is all good fun Cheesy

Jason
.
« Last Edit: 12 Oct 2007, 12:29:18 pm by j_groothu » Logged
michael37
Pre-Release Tester
Knight o' the round Table
***
Offline Offline

Posts: 116


View Profile
Re: Idle Questions about Coding
« Reply #5 on: 12 Oct 2007, 08:39:57 pm »

The seti optimized code has advanced quite a bit in the past years.  Honestly, the current code is above my head.

I look at it as the exercise of using efficient compilers with efficient math libraries.  That was Seti direction of optimization about two years ago.  Back when TMR and Harold Naparst worked on replacing gcc with ICC compiler and integrating efficient Intel IPP math libraries.  These libraries are fairly high level and don't require low level OS/hardware knowledge.  The libraries provide anything from Fourier transforms to addition and multiplication of multiple variables.

IMO, the best way to start is to experiment with these libraries.  They are still heavily used in the Seti code.  Write simple programs that use IPP and compare their runtime to non-IPP code.  See what works well and what doesn't work.

Of course, I would go with Linux since ICC and IPP for Linux is free for us.
Logged
Pages: [1] Go Up Print 
Seti@Home optimized science apps and information  |  Optimized Seti@Home apps  |  Discussion Forum  |  Topic: Idle Questions about Coding « previous next »
Jump to:  


Quote!
Any sufficiently advanced technology is indistinguishable from magic.
- Arthur C. Clarke

 
Site Statistics
Total Members:679
Total Posts:4,976
Total Topics:337
Downloads
Apps
Windows R-1.x24,086
Windows R-2.019,307
Windows R-2.233,958
Linux 32bit 1.x6,262
Linux 32bit 2.23,792
Linux 64bit 2.21,271
Alpha/IA6485
FreeBSD248
HPUX167
Subtotal:88,676
Source packs:3,405
Tool/WU packs:5,501
Total:114,224
GBs dl'd:174.06
Pages served
Today:1,238
Total:2,104,118
(since 6/26/2006)
171 Donations to S@H
U.S. Dollars:3,190.59
Euros:830.90
Last 24h:$ 0.00
Avg./24h:$ 15.69
Estim. total:$ 4,270.76
Latest Member:
driftandflow
 
 
Seti@Home optimized science apps and information | Powered by Enigma 2.0 (RC1).
© 2003-2007, LSP Dev Team. All Rights Reserved.
Seti@Home optimized science apps and information Forums | Powered by SMF.
© 2005, Simple Machines LLC. All Rights Reserved.
Powered by MySQL Powered by PHP Valid XHTML 1.0! Valid CSS!