+- +-
Say hello if visiting :) by Gecko
11 Jan 2023, 07:43:05 pm

Seti is down again by Mike
09 Aug 2017, 10:02:44 am

Some considerations regarding OpenCL MultiBeam app tuning from algorithm view by Raistmer
11 Dec 2016, 06:30:56 am

Loading APU to the limit: performance considerations by Mike
05 Nov 2016, 06:49:26 am

Better sleep on Windows - new round by Raistmer
26 Aug 2016, 02:02:31 pm

Author Topic: Idle Questions about Coding  (Read 14998 times)

Offline Fivestar Crashtest

  • Knight o' The Realm
  • **
  • Posts: 77
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
All your base are belong to us!  You have no chance to survive, make your time!

Offline michael37

  • Knight o' The Round Table
  • ***
  • Posts: 137
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?


msattler

  • Guest
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.

Offline Fivestar Crashtest

  • Knight o' The Realm
  • **
  • Posts: 77
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
All your base are belong to us!  You have no chance to survive, make your time!

Offline Jason G

  • Construction Fraggle
  • Knight who says 'Ni!'
  • *****
  • Posts: 8980
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 :D ) 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 :D  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 :D

Jason
.
« Last Edit: 12 Oct 2007, 12:29:18 pm by j_groothu »

Offline michael37

  • Knight o' The Round Table
  • ***
  • Posts: 137
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.

 

Welcome, Guest.
Please login or register.
 
 
 
Forgot your password?
Members
Total Members: 97
Latest: ToeBee
New This Month: 0
New This Week: 0
New Today: 0
Stats
Total Posts: 59559
Total Topics: 1672
Most Online Today: 352
Most Online Ever: 983
(20 Jan 2020, 03:17:55 pm)
Users Online
Members: 0
Guests: 328
Total: 328
Powered by EzPortal