Optimising/porting Minirosetta as a diploma project

Message boards : Number crunching : Optimising/porting Minirosetta as a diploma project

To post messages, you must log in.

AuthorMessage
Profile Tribaal
Avatar

Send message
Joined: 6 Feb 06
Posts: 80
Credit: 2,754,607
RAC: 0
Message 55781 - Posted: 15 Sep 2008, 17:45:16 UTC

Hi all.

I've been crunshing for Rosetta for a while now, and have always been a little put off by the lack of optimized client (like many). It is an understandable but frustrating choice, since you have only limited resources.

I'm starting my last year in Engineering school here in Switzerland, and my curriculum requires me to present a graduation project. As such, school will grant me time to work on either a project of my choice, or propose a boring project to write a paper on.
If possible, I would like to do something both useful to the general community and fun for me to work on.

Would you (the project mods) be willing to open your source code (under NDA, if required) to myself and the few teachers that would judge my work at school? This would enable me to port/optimize Rosetta to a defined set of architectures during the project's duration. Say, porting/optimizing to amd64 and/or Ia64 architectures? They both include some level of MMX instructions per RFC, and all my machines are 64bits linux boxes (good for QA).

The project's duration is (academically) 3-6 months.

Of course, I understand this would raise lots of questions from your part (legal status of school projects, my personal qualificaitons,...). I'm more than willing to answer any of them.
(Project mods/coders, feel free to frop me an email)

So in short, could you guys use some help working on rosetta from another academic institution (free of charge)?

Cheers

- Trib'
ID: 55781 · Rating: 0 · rate: Rate + / Rate - Report as offensive    Reply Quote
Profile Chilean
Avatar

Send message
Joined: 16 Oct 05
Posts: 711
Credit: 26,694,507
RAC: 0
Message 55783 - Posted: 15 Sep 2008, 18:19:39 UTC

Sounds good. Although I'm no Mod.

I agree.
ID: 55783 · Rating: 0 · rate: Rate + / Rate - Report as offensive    Reply Quote
Mod.Sense
Volunteer moderator

Send message
Joined: 22 Aug 06
Posts: 4018
Credit: 0
RAC: 0
Message 55784 - Posted: 15 Sep 2008, 18:41:29 UTC

Trib, the mods are not the holders of the source code. But you can start the process here (specifically, see the link for "Rosetta Licensing Information" near the bottom). There you can read the license agreement, and

Congratulations on nearing the end of your formal education.

Baker lab works with many researchers around the globe, in addition to the Fold.it! team. All are working to improve the code, with their focus primarily on the science of how proteins work. So, perhaps an eye specifically for optimization would be a fresh perspective (I do not know).

The topic has arisen many times, and some speculate that optimizations will not materially improve performance. From your perspective, it might be good to have a "Plan B" for what to do if your results are not as fruitful as you presently visualize. Perhaps a plan B of analysis on WHY specific optimizations do not make measurable improvement would suffice, (if that is found to be the case).
Rosetta Moderator: Mod.Sense
ID: 55784 · Rating: 0 · rate: Rate + / Rate - Report as offensive    Reply Quote
Profile Tribaal
Avatar

Send message
Joined: 6 Feb 06
Posts: 80
Credit: 2,754,607
RAC: 0
Message 55786 - Posted: 15 Sep 2008, 18:57:35 UTC

Thanks a lot for you input.

Indeed, a report on *why* optimization didn't work as well as intended would work. My first idea was to port to other architectures (namely 64 bits), optimizing in the process, but maybe my work could be used better in other parts of the application...

I'll send an email to people from the baker lab directly, even if it's to hear that they won't need my work :)

Thanks

- Trib'
ID: 55786 · Rating: 0 · rate: Rate + / Rate - Report as offensive    Reply Quote
Michael G.R.

Send message
Joined: 11 Nov 05
Posts: 264
Credit: 11,247,510
RAC: 0
Message 55792 - Posted: 15 Sep 2008, 19:45:04 UTC

I just want to encourage Tribaal. Very good idea!

Even if optimizing for MMX/SSEx/etc only improves speed by a few percents, over thousands of computers and many teraFLOPS, it makes a difference. Anything that improves our chances of making scientific breakthroughs and of designing useful medical therapies is worth it, IMO.

And who knows what you will find when you look at the code. Maybe you can help optimize their algorithms even without using MMX/SSEx.

ID: 55792 · Rating: 0 · rate: Rate + / Rate - Report as offensive    Reply Quote
Paul

Send message
Joined: 29 Oct 05
Posts: 193
Credit: 66,432,455
RAC: 9,719
Message 55832 - Posted: 17 Sep 2008, 13:39:49 UTC - in response to Message 55781.  

Thank you for the interest in making R@H even better. Even a small improvement in efficiency will be multiplied by thousands of hosts world wide.

After more than 2M credits, I continue to wish for an optimized client. It would be ideal to have clients optimized for P4s as well as Core 2 and AMD. Even if we could just find a way to fully exploit SSE or SSE2 instructions would be great.

Please keep us informed as to your progress.

thx
Thx!

Paul

ID: 55832 · Rating: 0 · rate: Rate + / Rate - Report as offensive    Reply Quote
Profile Tribaal
Avatar

Send message
Joined: 6 Feb 06
Posts: 80
Credit: 2,754,607
RAC: 0
Message 55834 - Posted: 17 Sep 2008, 13:48:54 UTC
Last modified: 17 Sep 2008, 13:49:38 UTC

Well so far, my humble email to the project remains unanswered.

I'd like to port to 64bits processors as a first target really, since both norms include some form of SSE instructions and would require fewer clock cycles per flops (if they are double precision) - that would be a first step.

Also, the academic part is timed - I need to define a precise scope :) that doesn't mean I wouldn't continue porting code if I have time/opportunity of course.

It would be really interesting from a algorithmic complexity standpoint to be able to scan through rosetta@home code - it's a perfect example of heuristic programming (approximating results as finely as possible, since the total number of possibility is practically infinite).
I'm sure my theoretical computing teacher would be willing to mentor, too.

Anyway, hope I'll at least get an answer :)

- Trib'

PS: congrats for the 2M credits milestone :)
ID: 55834 · Rating: 0 · rate: Rate + / Rate - Report as offensive    Reply Quote

Message boards : Number crunching : Optimising/porting Minirosetta as a diploma project



©2024 University of Washington
https://www.bakerlab.org