64 bit BOINC client & BOINC MANAGER for Windows XP64

Message boards : Number crunching : 64 bit BOINC client & BOINC MANAGER for Windows XP64
Message board moderation

To post messages, you must log in.

Previous · 1 · 2 · 3 · 4 · 5 . . . 6 · Next

AuthorMessage
Pepperammi

Send message
Joined: 3 Apr 99
Posts: 200
Credit: 737,775
RAC: 0
United Kingdom
Message 430930 - Posted: 4 Oct 2006, 21:22:33 UTC
Last modified: 4 Oct 2006, 21:39:03 UTC

I'd like one absolutely for the native x64 aspects.

Can I ask. I don't mean would it be optimized but would it be more efficient? Use slightly less resources? That I'm absolutely for because it could free up a tiny bit more for the projects
ID: 430930 · Report as offensive
Pepo
Volunteer tester
Avatar

Send message
Joined: 5 Aug 99
Posts: 308
Credit: 418,019
RAC: 0
Slovakia
Message 430988 - Posted: 4 Oct 2006, 23:28:02 UTC - in response to Message 430831.  
Last modified: 4 Oct 2006, 23:33:12 UTC

I'm not sure how "faster" would be better.


It's not about the speed, but efficiency (as Pepperacmi noted), no overkill flags are necessary. I've never delivered any of my company's apps in default, unoptimized state - except when some runtime problems should appear; some regular optimization, but usually each time optimized for size and/or speed.

I just know that Boinc's benchmark routines are something special (hence the "except when some runtime problems should appear").

As to Me It would not be any faster than a stock client as the app does all the work(Crunching) and so optimizing the client would be a waste of time, But that is up to whom ever does It.


If few thousands of crunchers loose some 2-3 minutes daily, it sums up to few CPUdays daily - this sounds to me as a waste of time.

My 2-3 cents.
Peter
ID: 430988 · Report as offensive
Profile Crunch3r
Volunteer tester
Avatar

Send message
Joined: 15 Apr 99
Posts: 1546
Credit: 3,438,823
RAC: 0
Germany
Message 440671 - Posted: 20 Oct 2006, 19:12:32 UTC - in response to Message 430988.  

if one what's the 64 bit boinc client and manager, well take a look at
http://calbe.dw70.de ...

It's all there ....




Join BOINC United now!
ID: 440671 · Report as offensive
OzzFan Crowdfunding Project Donor*Special Project $75 donorSpecial Project $250 donor
Volunteer tester
Avatar

Send message
Joined: 9 Apr 02
Posts: 15692
Credit: 84,761,841
RAC: 28
United States
Message 440687 - Posted: 20 Oct 2006, 19:45:33 UTC - in response to Message 430930.  

I'd like one absolutely for the native x64 aspects.

Can I ask. I don't mean would it be optimized but would it be more efficient? Use slightly less resources? That I'm absolutely for because it could free up a tiny bit more for the projects


What resources would you like to see it use less of?
ID: 440687 · Report as offensive
Profile Crunch3r
Volunteer tester
Avatar

Send message
Joined: 15 Apr 99
Posts: 1546
Credit: 3,438,823
RAC: 0
Germany
Message 440692 - Posted: 20 Oct 2006, 20:02:56 UTC - in response to Message 440687.  

I'd like one absolutely for the native x64 aspects.

Can I ask. I don't mean would it be optimized but would it be more efficient? Use slightly less resources? That I'm absolutely for because it could free up a tiny bit more for the projects


What resources would you like to see it use less of?


Well it's a NATIVE 64bit windows application and doesn't need to run in WOW emulation...

Did i mentioned that it sets cpu affinity automatically etc ?

P.S.

IMHO... why should i need to run an application im emulation if i can get it in native mode ???

Same goes for the application...









Join BOINC United now!
ID: 440692 · Report as offensive
OzzFan Crowdfunding Project Donor*Special Project $75 donorSpecial Project $250 donor
Volunteer tester
Avatar

Send message
Joined: 9 Apr 02
Posts: 15692
Credit: 84,761,841
RAC: 28
United States
Message 440696 - Posted: 20 Oct 2006, 20:08:38 UTC - in response to Message 440692.  

Well it's a NATIVE 64bit windows application and doesn't need to run in WOW emulation...

Did i mentioned that it sets cpu affinity automatically etc ?

P.S.

IMHO... why should i need to run an application im emulation if i can get it in native mode ???

Same goes for the application...


Well, thank you for the reply Crunch3r, but that didn't exactly answer my question. I don't disagree that it's a benefit to run natively instead of in WoW mode, and I also don't disagree that it sets CPU affinity automatically...

But that doesn't state anything about resources, and which ones would be used less of. I'm not against a 64bit app and/or client. Please don't misunderstand me. But when I think of resources, the first two that come to mind are memory footprint and CPU usage (besides maybe disk space).

It is my understanding that 64bit apps in general, use more disk space, and sometimes more memory depending on what application, and the CPU usage, as discussed many times before, is supposed to be at 100%. I was just curious as to what other resources they'd like to see lowered.
ID: 440696 · Report as offensive
Profile Crunch3r
Volunteer tester
Avatar

Send message
Joined: 15 Apr 99
Posts: 1546
Credit: 3,438,823
RAC: 0
Germany
Message 440701 - Posted: 20 Oct 2006, 20:12:57 UTC - in response to Message 440694.  
Last modified: 20 Oct 2006, 20:13:50 UTC

if one what's the 64 bit boinc client and manager, well take a look at
http://calbe.dw70.de ...

It's all there ....



Nice, Now a fully functiong 64bit SSE2 app that will work in both Intel cpus and AMD cpus that is fast and produces valid results would be nice. Yes I just started running You 64bit windows XP64 client 5.7.64 interesting. 8,512K or so as It gone up to 8,888K now(boinc.exe) and 11,056K(boincmgr.exe).

10/20/2006 12:49:38 PM||Running CPU benchmarks
10/20/2006 12:50:37 PM||Benchmark results:
10/20/2006 12:50:37 PM|| Number of CPUs: 2
10/20/2006 12:50:37 PM|| 2605 floating point MIPS (Whetstone) per CPU
10/20/2006 12:50:37 PM|| 30328 integer MIPS (Dhrystone) per CPU
10/20/2006 12:50:37 PM||Finished CPU benchmarks
10/20/2006 12:50:38 PM|SETI@home|Restarting task 12my03aa.8443.13296.340900.3.83_3 using setiathome_enhanced version 515
10/20/2006 12:50:38 PM|SETI@home|Restarting task 12my03aa.8443.13585.429814.3.4_2 using setiathome_enhanced version 515
10/20/2006 12:50:59 PM||Suspending computation - running CPU benchmarks
10/20/2006 12:51:01 PM||Running CPU benchmarks
10/20/2006 12:52:00 PM||Benchmark results:
10/20/2006 12:52:00 PM|| Number of CPUs: 2
10/20/2006 12:52:00 PM|| 2624 floating point MIPS (Whetstone) per CPU
10/20/2006 12:52:00 PM|| 30716 integer MIPS (Dhrystone) per CPU
10/20/2006 12:52:00 PM||Finished CPU benchmarks
10/20/2006 12:52:01 PM||Resuming computation


"floating point" was higher using Your SSE2 32bit boinc.exe, But the integer is double what It used to be. I couldn't believe My eyes, So I ran the Benchmarks again.


Hi Batman or should i say Joker :-);

"It gone up to 8,888K now(boinc.exe) and 11,056K(boincmgr.exe)" is the same as what i'm seeing here...

regarding the benchmars ...well it is kind of weired ...no optimizations have been enabled during compilation at all (everything was switched to lowest value) ... i don't know what happens there...

P.S. I could modify the source of the "benchmark" to half the value ... to match the value of the stock client ... would that be cosidered as cheating to modify the source to get lower benchmarks ???








Join BOINC United now!
ID: 440701 · Report as offensive
Pepperammi

Send message
Joined: 3 Apr 99
Posts: 200
Credit: 737,775
RAC: 0
United Kingdom
Message 440714 - Posted: 20 Oct 2006, 20:21:34 UTC - in response to Message 440696.  
Last modified: 20 Oct 2006, 20:30:41 UTC

Well it's a NATIVE 64bit windows application and doesn't need to run in WOW emulation...

Did i mentioned that it sets cpu affinity automatically etc ?

P.S.

IMHO... why should i need to run an application im emulation if i can get it in native mode ???

Same goes for the application...


Well, thank you for the reply Crunch3r, but that didn't exactly answer my question. I don't disagree that it's a benefit to run natively instead of in WoW mode, and I also don't disagree that it sets CPU affinity automatically...

But that doesn't state anything about resources, and which ones would be used less of. I'm not against a 64bit app and/or client. Please don't misunderstand me. But when I think of resources, the first two that come to mind are memory footprint and CPU usage (besides maybe disk space).

It is my understanding that 64bit apps in general, use more disk space, and sometimes more memory depending on what application, and the CPU usage, as discussed many times before, is supposed to be at 100%. I was just curious as to what other resources they'd like to see lowered.

Well I'm no expert.
All 32bit apps run in wow emulation when on WinXP x64 and i would think having to run it through a bit of emulation would waste a bit of cpu cycles at least. As for memory footprint i have no idea. My thinking is if the app is native x64 it should use the x64 abilities of the cpu more effectively and possibly the better memory functions in WinXP x64 would be better used.

As I'm about to give Crunch3rs app a go I'll note down the memory usage from the task manager before and after for you :)
Like i say I'm no expert but maybe if it doe use more memory, maybe it's because the improved memery managment of WniXP x64 thinks it'll get better performance from having a few more bytes in memory? Or maybe just because all th modified files are larger than the originals?
ID: 440714 · Report as offensive
Profile Crunch3r
Volunteer tester
Avatar

Send message
Joined: 15 Apr 99
Posts: 1546
Credit: 3,438,823
RAC: 0
Germany
Message 440718 - Posted: 20 Oct 2006, 20:25:59 UTC - in response to Message 440696.  
Last modified: 20 Oct 2006, 20:28:27 UTC

Well it's a NATIVE 64bit windows application and doesn't need to run in WOW emulation...

Did i mentioned that it sets cpu affinity automatically etc ?

P.S.

IMHO... why should i need to run an application im emulation if i can get it in native mode ???

Same goes for the application...


Well, thank you for the reply Crunch3r, but that didn't exactly answer my question. I don't disagree that it's a benefit to run natively instead of in WoW mode, and I also don't disagree that it sets CPU affinity automatically...

But that doesn't state anything about resources, and which ones would be used less of. I'm not against a 64bit app and/or client. Please don't misunderstand me. But when I think of resources, the first two that come to mind are memory footprint and CPU usage (besides maybe disk space).

It is my understanding that 64bit apps in general, use more disk space, and sometimes more memory depending on what application, and the CPU usage, as discussed many times before, is supposed to be at 100%. I was just curious as to what other resources they'd like to see lowered.


Well first off all, the 64 bit windows app. and manager is compiled and linked abit different as the one you get when you download and install the 5.4.11 from berkeley.

AND IT's 5.7.0 source code and not 5.4.11 !!!

I chose to compile some needed libs like curl as dll and didn't link it into the client... came goes for openssl etc...

Another thing is that i used newer versions of wxwindows openssl etc... that might add some resouces no the binary...

Anyhow interesting point ... i need to see the memory usage of both the 32 bit version (yes there is one behaving exactly like the one for winxp64) and the 64 bit one...

I'll post the differences between the 64 bit and the 32 bit one regarding memory consumption if you like to see it ...



Join BOINC United now!
ID: 440718 · Report as offensive
Profile Crunch3r
Volunteer tester
Avatar

Send message
Joined: 15 Apr 99
Posts: 1546
Credit: 3,438,823
RAC: 0
Germany
Message 440721 - Posted: 20 Oct 2006, 20:27:48 UTC - in response to Message 440712.  

if one what's the 64 bit boinc client and manager, well take a look at
http://calbe.dw70.de ...

It's all there ....



Nice, Now a fully functiong 64bit SSE2 app that will work in both Intel cpus and AMD cpus that is fast and produces valid results would be nice. Yes I just started running You 64bit windows XP64 client 5.7.64 interesting. 8,512K or so as It gone up to 8,888K now(boinc.exe) and 11,056K(boincmgr.exe).

10/20/2006 12:49:38 PM||Running CPU benchmarks
10/20/2006 12:50:37 PM||Benchmark results:
10/20/2006 12:50:37 PM|| Number of CPUs: 2
10/20/2006 12:50:37 PM|| 2605 floating point MIPS (Whetstone) per CPU
10/20/2006 12:50:37 PM|| 30328 integer MIPS (Dhrystone) per CPU
10/20/2006 12:50:37 PM||Finished CPU benchmarks
10/20/2006 12:50:38 PM|SETI@home|Restarting task 12my03aa.8443.13296.340900.3.83_3 using setiathome_enhanced version 515
10/20/2006 12:50:38 PM|SETI@home|Restarting task 12my03aa.8443.13585.429814.3.4_2 using setiathome_enhanced version 515
10/20/2006 12:50:59 PM||Suspending computation - running CPU benchmarks
10/20/2006 12:51:01 PM||Running CPU benchmarks
10/20/2006 12:52:00 PM||Benchmark results:
10/20/2006 12:52:00 PM|| Number of CPUs: 2
10/20/2006 12:52:00 PM|| 2624 floating point MIPS (Whetstone) per CPU
10/20/2006 12:52:00 PM|| 30716 integer MIPS (Dhrystone) per CPU
10/20/2006 12:52:00 PM||Finished CPU benchmarks
10/20/2006 12:52:01 PM||Resuming computation


"floating point" was higher using Your SSE2 32bit boinc.exe, But the integer is double what It used to be. I couldn't believe My eyes, So I ran the Benchmarks again.


Hi Batman or should i say Joker :-);

"It gone up to 8,888K now(boinc.exe) and 11,056K(boincmgr.exe)" is the same as what i'm seeing here...

regarding the benchmars ...well it is kind of weired ...no optimizations have been enabled during compilation at all (everything was switched to lowest value) ... i don't know what happens there...

P.S. I could modify the source of the "benchmark" to half the value ... to match the value of the stock client ... would that be cosidered as cheating to modify the source to get lower benchmarks ???







It was just an interesting event, that's all(Besides I don't know if the benchmarks are wrong or not). Nice lookin program though, We now just need a really optimized xp64 SSE2 app for Intel and AMD cpus. ;)


Well ask the Eric...
While looking at the code of 5.17 as it is right now... it won't work....

Anyhow...we need to wait for his reply....





Join BOINC United now!
ID: 440721 · Report as offensive
OzzFan Crowdfunding Project Donor*Special Project $75 donorSpecial Project $250 donor
Volunteer tester
Avatar

Send message
Joined: 9 Apr 02
Posts: 15692
Credit: 84,761,841
RAC: 28
United States
Message 440723 - Posted: 20 Oct 2006, 20:28:28 UTC - in response to Message 440714.  

Well I'm no expert.
All 32bit apps run in wow emulation when on WinXP x64 and i would think having to run it through a bit of emulation would waste a bit of cpu cycles at least. As for memory footprint i have no idea. My thinking is if the app is native x64 it should use the x64 abilities of the cpu more effectively and possibly the better memory functions in WinXP x64 would be better used.

As I'm about to give Crunch3rs app a go I'll note down the memory usage from the task manager before and after for you :)
Like i say I'm no expert but maybe if it doe use more memory, maybe it's because the improved memery managment of WniXP x64 thinks it'll get better performance from having a few more bytes in memory?


Yes, I agree that it should be more efficient without having to waste cycles switching between 32bit and 64bit through WoW, but that isn't less resources.

Even if the RAM increases or stays the same, that wouldn't be less resources either! 8-)

PS - Just for curiosity's sake, it would be interesting to note the memory footprint, for future reference. I'm not all that concerned about it, just curious.
ID: 440723 · Report as offensive
Pepperammi

Send message
Joined: 3 Apr 99
Posts: 200
Credit: 737,775
RAC: 0
United Kingdom
Message 440731 - Posted: 20 Oct 2006, 20:33:12 UTC

x86
boinc 8,648
boincmgr 11,228

x64
boinc 9,500
boincmgr 12,520


20/10/2006 21:28:10||Starting BOINC client version 5.7.64 for windows_intelx86
20/10/2006 21:28:10||Libraries: libcurl/7.15.5
20/10/2006 21:28:10||Data directory: C:\\Program Files (x86)\\BOINC
20/10/2006 21:28:10|SETI@home|Found app_info.xml; using anonymous platform
20/10/2006 21:28:10||Processor: 2 GenuineIntel Intel(R) Pentium(R) D CPU 3.00GHz
20/10/2006 21:28:10||Memory: 3.00 GB physical, 7.31 GB virtual
20/10/2006 21:28:10||Disk: 116.41 GB total, 75.45 GB free
20/10/2006 21:28:10||Version change (5.4.11 -> 5.7.64); running CPU benchmarks
20/10/2006 21:28:10|BBC Climate Change Experiment|URL: http://bbc.cpdn.org/; Computer ID: 22258; location: (none); project prefs: default
20/10/2006 21:28:10|Einstein@Home|URL: http://einstein.phys.uwm.edu/; Computer ID: 765292; location: (none); project prefs: default
20/10/2006 21:28:10|SETI@home|URL: http://setiathome.berkeley.edu/; Computer ID: 1774683; location: (none); project prefs: default
20/10/2006 21:28:10||General prefs: from BBC Climate Change Experiment (last modified 2006-07-03 13:27:58)
20/10/2006 21:28:10||General prefs: using your defaults
20/10/2006 21:28:10||
20/10/2006 21:28:10||
20/10/2006 21:28:10||BOINC 5.7.64 64 bit Edition by Crunch3r
20/10/2006 21:28:10||enabled features:
20/10/2006 21:28:10||-cpu_affinity
20/10/2006 21:28:10||-return_results_immediately
20/10/2006 21:28:10||
20/10/2006 21:28:10||
20/10/2006 21:28:10||Suspending network activity - user request
20/10/2006 21:28:12||Running CPU benchmarks


I notice it even has a modified scr file. Very thorough of you Crunch3r.
Thank you.
ID: 440731 · Report as offensive
OzzFan Crowdfunding Project Donor*Special Project $75 donorSpecial Project $250 donor
Volunteer tester
Avatar

Send message
Joined: 9 Apr 02
Posts: 15692
Credit: 84,761,841
RAC: 28
United States
Message 440733 - Posted: 20 Oct 2006, 20:34:34 UTC - in response to Message 440718.  

AND IT's 5.7.0 source code and not 5.4.11 !!!


That's good news! 8-)

Another thing is that i used newer versions of wxwindows openssl etc... that might add some resouces no the binary...


So that might add more resources to the binary, not less. Mind you, I'm not concerned about this at all. When I get a 64bit CPU (hopefully soon) and upgrade to Vista, I would love to have a 64bit app and client, and I'm not really worried about more resources - it's just that the original post I quoted from Pepperammi wanted to see less resources.

Anyhow interesting point ... i need to see the memory usage of both the 32 bit version (yes there is one behaving exactly like the one for winxp64) and the 64 bit one...

I'll post the differences between the 64 bit and the 32 bit one regarding memory consumption if you like to see it ...


It would be interesting to see for reference, though it won't be a deal breaker on 64bit for me.
ID: 440733 · Report as offensive
Profile Crunch3r
Volunteer tester
Avatar

Send message
Joined: 15 Apr 99
Posts: 1546
Credit: 3,438,823
RAC: 0
Germany
Message 440735 - Posted: 20 Oct 2006, 20:35:02 UTC - in response to Message 440723.  

Well I'm no expert.
All 32bit apps run in wow emulation when on WinXP x64 and i would think having to run it through a bit of emulation would waste a bit of cpu cycles at least. As for memory footprint i have no idea. My thinking is if the app is native x64 it should use the x64 abilities of the cpu more effectively and possibly the better memory functions in WinXP x64 would be better used.

As I'm about to give Crunch3rs app a go I'll note down the memory usage from the task manager before and after for you :)
Like i say I'm no expert but maybe if it doe use more memory, maybe it's because the improved memery managment of WniXP x64 thinks it'll get better performance from having a few more bytes in memory?


Yes, I agree that it should be more efficient without having to waste cycles switching between 32bit and 64bit through WoW, but that isn't less resources.

Even if the RAM increases or stays the same, that wouldn't be less resources either! 8-)

PS - Just for curiosity's sake, it would be interesting to note the memory footprint, for future reference. I'm not all that concerned about it, just
curious.


Well running in WoW IS slowing things down... that's for sure ... and if you consider to run a 64 bit seti app. well you surely notice the difference netween 32 and 64 bit apps.

I can give give you an example of what i've experienced ... running a fully optimized 5.12 (sse3 app) and comparing it to a 64 bit 5.15 app using MKL only, well the 64 bit MKL app is faster ... about 15 %...






Join BOINC United now!
ID: 440735 · Report as offensive
OzzFan Crowdfunding Project Donor*Special Project $75 donorSpecial Project $250 donor
Volunteer tester
Avatar

Send message
Joined: 9 Apr 02
Posts: 15692
Credit: 84,761,841
RAC: 28
United States
Message 440737 - Posted: 20 Oct 2006, 20:36:17 UTC - in response to Message 440731.  

x86
boinc 8,648
boincmgr 11,228

x64
boinc 9,500
boincmgr 12,520


Is that the memory footprint in KB? Not a major increase, but still in increase... again, I'm not concerned about it, was just curious.
ID: 440737 · Report as offensive
Pepperammi

Send message
Joined: 3 Apr 99
Posts: 200
Credit: 737,775
RAC: 0
United Kingdom
Message 440742 - Posted: 20 Oct 2006, 20:40:41 UTC - in response to Message 440737.  
Last modified: 20 Oct 2006, 20:43:49 UTC

x86
boinc 8,648
boincmgr 11,228

x64
boinc 9,500
boincmgr 12,520


Is that the memory footprint in KB? Not a major increase, but still in increase... again, I'm not concerned about it, was just curious.

Those are the figures taken straight out of the task manager. Think thats KB.
I let them both run for a couple of minutes to settle slightly.

Thanks again Crunch3r. Seems to be working fine.

I'd be interested to see what the differences in the 32bit and 64bit are. Don't wont to put you to even more work though.
ID: 440742 · Report as offensive
Hans Dorn
Volunteer developer
Volunteer tester
Avatar

Send message
Joined: 3 Apr 99
Posts: 2262
Credit: 26,448,570
RAC: 0
Germany
Message 440746 - Posted: 20 Oct 2006, 20:44:42 UTC

Hi Crunch3r, nice to see your site is up again :o)


Regards Hans
ID: 440746 · Report as offensive
Profile Crunch3r
Volunteer tester
Avatar

Send message
Joined: 15 Apr 99
Posts: 1546
Credit: 3,438,823
RAC: 0
Germany
Message 440747 - Posted: 20 Oct 2006, 20:46:23 UTC - in response to Message 440742.  

x86
boinc 8,648
boincmgr 11,228

x64
boinc 9,500
boincmgr 12,520


Is that the memory footprint in KB? Not a major increase, but still in increase... again, I'm not concerned about it, was just curious.

Those are the figures taken straight out of the task manager. Think thats KB.
I let them both run for a couple of minutes to settle slightly.

Thanks again Crunch3r. Seems to be working fine.

I'd be interested to see what the differences in the 32bit and 64bit are. Don't wont to put you to even more work though.



Well for me it's 11,200 for boinc and 3,200 for noincmgr atm ....



Join BOINC United now!
ID: 440747 · Report as offensive
Profile Crunch3r
Volunteer tester
Avatar

Send message
Joined: 15 Apr 99
Posts: 1546
Credit: 3,438,823
RAC: 0
Germany
Message 440749 - Posted: 20 Oct 2006, 20:47:35 UTC - in response to Message 440746.  

Hi Crunch3r, nice to see your site is up again :o)

Regards Hans


Hallo Hans,
Naja mit der "Site" das so eine sache, haste bock mit an der cpu affinity für linux zu arbeiten ???




Join BOINC United now!
ID: 440749 · Report as offensive
Profile Crunch3r
Volunteer tester
Avatar

Send message
Joined: 15 Apr 99
Posts: 1546
Credit: 3,438,823
RAC: 0
Germany
Message 440753 - Posted: 20 Oct 2006, 20:49:34 UTC - in response to Message 440742.  

Don't wont to put you to even more work though.


The worst part of all was bgetting boincmgr to compile ...it's a nightmare !
Took me 2 days to get it working.. everyting else was easy to do...



Join BOINC United now!
ID: 440753 · Report as offensive
Previous · 1 · 2 · 3 · 4 · 5 . . . 6 · Next

Message boards : Number crunching : 64 bit BOINC client & BOINC MANAGER for Windows XP64


 
©2026 University of California
 
SETI@home and Astropulse are funded by grants from the National Science Foundation, NASA, and donations from SETI@home volunteers. AstroPulse is funded in part by the NSF through grant AST-0307956.