![]() |
|
Home | Help | Status | Forums | Glossary | Account
|
log in |
Message boards : Help! : How do I make my own BOINC-project?
Author | Message |
---|---|
I am a Bachelor of Science (in physics). I am not a very good programmer, but I would like to do a new BOINC-project for my thesis. There is a program called AIRES (http://www.fisica.unlp.edu.ar/auger/aires/, http://www.fisica.unlp.edu.ar/auger/aires/eg_AiresDownload.html) that simulates cosmic ray air showers. How can I make AIRES BOINC-compatible? | |
ID: 5433 | Rating: 0 | rate:
![]() ![]() ![]() | |
Henri Tapani Heinonen wrote: I am a Bachelor of Science (in physics). I am not a very good programmer, but I would like to do a new BOINC-project for my thesis. that simulates cosmic ray air showers. How can I make AIRES BOINC-compatible When is your thesis due? ____________ -- Eric Myers "Education is not the filling of a pail, but the lighting of a fire." -- William Butler Yeats | |
ID: 5434 | Rating: 0 | rate:
![]() ![]() ![]() | |
No time limit (in theory), but soon (in practice). | |
ID: 5435 | Rating: 0 | rate:
![]() ![]() ![]() | |
Do you have a working AIRES program which you want to "BOINC'ify", or any previous experience working with AIRES? From the documentation links it looks like it's not just one program, but a library and a few main programs. | |
ID: 5436 | Rating: 0 | rate:
![]() ![]() ![]() | |
Wormholio wrote: Do you have a working AIRES program which you want to "BOINC'ify", or any previous experience working with AIRES? From the documentation links it looks like it's not just one program, but a library and a few main programs. Yes, I have. The main program is "aires". You can use it like this: "aires < example.inp" Wormholio wrote:
Great. Can you tell me more about BOINC API? Thanks! ____________ ![]() | |
ID: 5438 | Rating: 0 | rate:
![]() ![]() ![]() | |
This sounds great!! Can't wait to see what happens! | |
ID: 5440 | Rating: 0 | rate:
![]() ![]() ![]() | |
The two main things you would have to do are 1) create a project server, and 2) create an application. There is documentation in various places for both of these, though it is not as well developed as many of us would like. A good place to start is http://pirates.spy-hill.net/help/, which has links to the primary documentation (at Berkeley) and the BOINC wiki. | |
ID: 5441 | Rating: 0 | rate:
![]() ![]() ![]() | |
Oh yes, one more thing. Welcome aboard. | |
ID: 5442 | Rating: 0 | rate:
![]() ![]() ![]() | |
Thank you very much, guys! :) | |
ID: 5443 | Rating: 0 | rate:
![]() ![]() ![]() | |
And when you come to the point you'll need testers, this fearless bunch of Pirates will surely not hesitate to crunch the first WUs! :-) | |
ID: 5444 | Rating: 1 | rate:
![]() ![]() ![]() | |
Cori wrote: And when you come to the point you'll need testers, this fearless bunch of Pirates will surely not hesitate to crunch the first WUs! :-) Thanks! There's no doubt of it. ;) ____________ ![]() | |
ID: 5453 | Rating: 0 | rate:
![]() ![]() ![]() | |
Pirated update from BOINC Synergy forum Henri Tapani Heinonen wrote:
____________ ![]() Click and enter your name for your BOINC Statistics | |
ID: 5538 | Rating: 0 | rate:
![]() ![]() ![]() | |
I've moved this thread from Pirate Talk to the Help forum to make it publicly readable to those not in the crew. Hopefully Henri will update us from time to time on his progress. | |
ID: 5618 | Rating: 0 | rate:
![]() ![]() ![]() | |
Thanks! | |
ID: 5643 | Rating: 0 | rate:
![]() ![]() ![]() | |
Hello! | |
ID: 5722 | Rating: 1 | rate:
![]() ![]() ![]() | |
Henri Tapani Heinonen wrote: Hello! No, the wrapper is a standalone program which you compile and send out as your appliction. In some sense the AIRES executable is a data file as far as the wrapper is concerned. You run the wrapper as the application, and tt will then run the executable. To tell it what to do you need to specify the app and command line args in a job.xml file.
You put it in your main project directory, or somewhere else, and then you name the file as a command line argument to the create_work command to create a workunit. You also specify the input file in the Workunit template.
It is also an input file. Specify it in the Workunit template and name it on the command line to create_work. In fact, I'd make this the first input file.
So specify this in the Result template.
The simplest way is to run bin/create_work A good example of the template files and a script to create work can be found in my "cube" example application. ____________ -- Eric Myers "Education is not the filling of a pail, but the lighting of a fire." -- William Butler Yeats | |
ID: 5725 | Rating: 0 | rate:
![]() ![]() ![]() | |
Henri Tapani Heinonen wrote: Hello! Now I know that using the wrapper approach to run an existing executable looks like the easiest way to get started, but you have an alternative. Since you have the source code for AIRES you could modify the main program to use the BOINC API. It's fairly simple, and there are Fortran versions of the functions (I have not tested them). Then you would compile this as your "Boincified" application. You still have to deal with input and output files, but not the extra level of abstraction of the wrapper. (I've used the Wrapper to run R on Windows. It was easier than building a different version of R to run on BOINC.) One way to learn the API quickly is to go through my sample applications, hello, yello, cube.... and see how it's done. The idea there was to start small and introduce new ideas as needed, rather than everything all at once. They are in C++ but the same functions are used in Fortran. If you want the "all at once" version of a sample application then upper_case from the boinc_samples (and NOT the version in the apps directory) gives you that. ____________ -- Eric Myers "Education is not the filling of a pail, but the lighting of a fire." -- William Butler Yeats | |
ID: 5726 | Rating: 0 | rate:
![]() ![]() ![]() | |
Hello! I hope this is the right place for these questions. They haven't replied on my questions on the two different BOINC mailing lists... | |
ID: 8456 | Rating: 0 | rate:
![]() ![]() ![]() | |
Hi! Long time no see! :) <job_desc> <task> <application>worker_windows_x86_64__opencl_nvidia_100_0.exe</application> <command_line>1800</command_line> <weight>1</weight> <checkpoint_filename>fraction_done.txt</checkpoint_filename> <fraction_done_filename>fraction_done.txt</fraction_done_filename> </task> <task> <application>poclbm.exe</application> <stdout_filename>stdout.txt</stdout_filename> <stderr_filename>stderr.txt</stderr_filename> <command_line>--device=0 --verbose --vectors --rate=30 1GwmtTcHbdMxQ2mCVQJq9hWuHYr3rUencd:testaus@pool.50btc.com:8332 1GwmtTcHbdMxQ2mCVQJq9hWuHYr3rUencd:testaus@pool2.50btc.com:8332 --tolerance=2 --failback=1</command_line> <weight>0</weight> <daemon/> </task> </job_desc> ---- The content of version.xml: ---- <version> <file> <physical_name>utopia1_26035_windows_x86_64__opencl_nvidia_100.exe</physical_name> <main_program/> </file> <file> <physical_name>worker_windows_x86_64__opencl_nvidia_100_0.exe</physical_name> <logical_name>worker_windows_x86_64__opencl_nvidia_100_0.exe</logical_name> </file> <file> <physical_name>w9xpopen.exe</physical_name> <logical_name>w9xpopen.exe</logical_name> </file> <file> <physical_name>unicodedata.pyd</physical_name> <logical_name>unicodedata.pyd</logical_name> </file> <file> <physical_name>_ssl.pyd</physical_name> <logical_name>_ssl.pyd</logical_name> </file> <file> <physical_name>_socket.pyd</physical_name> <logical_name>_socket.pyd</logical_name> </file> <file> <physical_name>select.pyd</physical_name> <logical_name>select.pyd</logical_name> </file> <file> <physical_name>python26.dll</physical_name> <logical_name>python26.dll</logical_name> </file> <file> <physical_name>pyopencl._cl.pyd</physical_name> <logical_name>pyopencl._cl.pyd</logical_name> </file> <file> <physical_name>poclbm.exe</physical_name> <logical_name>poclbm.exe</logical_name> </file> <file> <physical_name>phatk.cl</physical_name> <logical_name>phatk.cl</logical_name> </file> <file> <physical_name>numpy.random.mtrand.pyd</physical_name> <logical_name>numpy.random.mtrand.pyd</logical_name> </file> <file> <physical_name>numpy.linalg.lapack_lite.pyd</physical_name> <logical_name>numpy.linalg.lapack_lite.pyd</logical_name> </file> <file> <physical_name>numpy.lib._compiled_base.pyd</physical_name> <logical_name>numpy.lib._compiled_base.pyd</logical_name> </file> <file> <physical_name>numpy.fft.fftpack_lite.pyd</physical_name> <logical_name>numpy.fft.fftpack_lite.pyd</logical_name> </file> <file> <physical_name>numpy.core.umath.pyd</physical_name> <logical_name>numpy.core.umath.pyd</logical_name> </file> <file> <physical_name>numpy.core._sort.pyd</physical_name> <logical_name>numpy.core._sort.pyd</logical_name> </file> <file> <physical_name>numpy.core.scalarmath.pyd</physical_name> <logical_name>numpy.core.scalarmath.pyd</logical_name> </file> <file> <physical_name>numpy.core.multiarray.pyd</physical_name> <logical_name>numpy.core.multiarray.pyd</logical_name> </file> <file> <physical_name>numpy.core._dotblas.pyd</physical_name> <logical_name>numpy.core._dotblas.pyd</logical_name> </file> <file> <physical_name>msvcp90.dll</physical_name> <logical_name>msvcp90.dll</logical_name> </file> <file> <physical_name>library.zip</physical_name> <logical_name>library.zip</logical_name> </file> <file><physical_name>utopia1_26035_windows_x86_64__opencl_nvidia_100_job.xml</physical_name> <logical_name>job.xml</logical_name> </file> <file> <physical_name>_hashlib.pyd</physical_name> <logical_name>_hashlib.pyd</logical_name> </file> <file> <physical_name>_ctypes.pyd</physical_name> <logical_name>_ctypes.pyd</logical_name> </file> <file> <physical_name>bz2.pyd</physical_name> <logical_name>bz2.pyd</logical_name> </file> <file> <physical_name>boost_python-vc90-mt-1_39.dll</physical_name> <logical_name>boost_python-vc90-mt-1_39.dll</logical_name> </file> <needs_network/> </version> ---- The content of /home/boincadm/projects/test/project.xml: ---- <boinc> <platform> <name>windows_intelx86</name> <user_friendly_name>Microsoft Windows (98 or later) running on an Intel x86-compatible CPU</user_friendly_name> </platform> <platform> <name>windows_intelx86__opencl_nvidia_100</name> <user_friendly_name>Microsoft Windows (98 or later) running on an Intel x86-compatible CPU</user_friendly_name> </platform> <platform> <name>windows_intelx86__opencl_ati_100</name> <user_friendly_name>Microsoft Windows (98 or later) running on an Intel x86-compatible CPU</user_friendly_name> </platform> <platform> <name>windows_intelx86__cuda</name> <user_friendly_name>Microsoft Windows (98 or later) running on an Intel x86-compatible CPU</user_friendly_name> </platform> <platform> <name>windows_x86_64</name> <user_friendly_name>Microsoft Windows running on an AMD x86_64 or Intel EM64T CPU</user_friendly_name> </platform> <platform> <name>windows_x86_64__opencl_nvidia_100</name> <user_friendly_name>Microsoft Windows running on an AMD x86_64 or Intel EM64T CPU</user_friendly_name> </platform> <platform> <name>windows_x86_64__opencl_ati_100</name> <user_friendly_name>Microsoft Windows running on an AMD x86_64 or Intel EM64T CPU</user_friendly_name> </platform> <platform> <name>windows_x86_64__cuda</name> <user_friendly_name>Microsoft Windows running on an AMD x86_64 or Intel EM64T CPU</user_friendly_name> </platform> <platform> <name>i686-pc-linux-gnu</name> <user_friendly_name>Linux running on an Intel x86-compatible CPU</user_friendly_name> </platform> <platform> <name>x86_64-pc-linux-gnu</name> <user_friendly_name>Linux running on an AMD x86_64 or Intel EM64T CPU</user_friendly_name> </platform> <platform> <name>powerpc-apple-darwin</name> <user_friendly_name>Mac OS X 10.3 or later running on Motorola PowerPC</user_friendly_name> </platform> <platform> <name>i686-apple-darwin</name> <user_friendly_name>Mac OS 10.4 or later running on Intel</user_friendly_name> </platform> <platform> <name>x86_64-apple-darwin</name> <user_friendly_name>Intel 64-bit Mac OS 10.5 or later</user_friendly_name> </platform> <platform> <name>sparc-sun-solaris2.7</name> <user_friendly_name>Solaris 2.7 running on a SPARC-compatible CPU</user_friendly_name> </platform> <platform> <name>sparc-sun-solaris</name> <user_friendly_name>Solaris 2.8 or later running on a SPARC-compatible CPU</user_friendly_name> </platform> <platform> <name>sparc64-sun-solaris</name> <user_friendly_name>Solaris 2.8 or later running on a SPARC 64-bit CPU</user_friendly_name> </platform> <platform> <name>powerpc64-ps3-linux-gnu</name> <user_friendly_name>Sony Playstation 3 running Linux</user_friendly_name> </platform> <platform> <name>anonymous</name> <user_friendly_name>anonymous</user_friendly_name> </platform> <app> <name>utopia1</name> <user_friendly_name>Bitcoin Utopia Project 1</user_friendly_name> </app> </boinc> ---- The content of /home/boincadm/projects/test/templates/utopia1_in: ---- <workunit> </workunit> ---- The content of /home/boincadm/projects/test/templates/utopia1_out: ---- <output_template> <file_info> <name><OUTFILE_0/></name> <generated_locally/> <upload_when_present/> <max_nbytes>5000000</max_nbytes> <url><UPLOAD_URL/></url> </file_info> <file_info> <name><OUTFILE_1/></name> <generated_locally/> <upload_when_present/> <max_nbytes>5000000</max_nbytes> <url><UPLOAD_URL/></url> </file_info> <result> <file_ref> <file_name><OUTFILE_0/></file_name> <open_name>fraction_done.txt</open_name> <copy_file/> </file_ref> <file_ref> <file_name><OUTFILE_1/></file_name> <open_name>stdout.txt</open_name> <copy_file/> </file_ref> </result> </output_template> ---- The command I use to produce one new workunit: ./bin/create_work --appname utopia1 --wu_name wu_utopia1_201305021049 --wu_template templates/utopia1_in --result_template templates/utopia1_out --min_quorum 1 --target_nresults 1 Can you see any major flaws anywhere? The problem is everything else seems to work, but my bitcoin miner (poclbm.exe) doesn't seem to get anything to work with. After 5 minutes of running, this is the content of stdout.txt: ---- pool.50btc.com:8332 02/05/2013 10:50:42, Setting pool (1GwmtTcHbdMxQ2mCVQJq9hWuHYr3rUencd @ pool.50btc.com:8332) pool.50btc.com:8332 02/05/2013 10:50:43, LP connected to pool.50btc.com:8332 ---- It should look more like this: ( c:\Users\Henri\Desktop\temp>poclbm.exe --device=0 --verbose --vectors --rate=30 1GwmtTcHbdMxQ2mCVQJq9hWuHYr3rUencd:testaus@pool.50btc.com:8332 1GwmtTcHbdMxQ2mCVQJq9hWuHYr3rUencd:testaus@pool2.50btc.com:8332 --tolerance=2 --failback=1 >>test.txt ): ---- pool.50btc.com:8332 02/05/2013 10:55:48, Setting pool (1GwmtTcHbdMxQ2mCVQJq9hWuHYr3rUencd @ pool.50btc.com:8332) pool.50btc.com:8332 02/05/2013 10:55:49, LP connected to pool.50btc.com:8332 pool.50btc.com:8332 02/05/2013 10:56:18, [2.408 MH/s (~0 MH/s)] [Rej: 0/0 (0%)] pool.50btc.com:8332 02/05/2013 10:56:48, [2.287 MH/s (~0 MH/s)] [Rej: 0/0 (0%)] pool.50btc.com:8332 02/05/2013 10:57:18, [2.281 MH/s (~0 MH/s)] [Rej: 0/0 (0%)] pool.50btc.com:8332 02/05/2013 10:57:48, [2.383 MH/s (~0 MH/s)] [Rej: 0/0 (0%)] pool.50btc.com:8332 02/05/2013 10:58:18, [2.389 MH/s (~0 MH/s)] [Rej: 0/0 (0%)] pool.50btc.com:8332 02/05/2013 10:58:48, [2.535 MH/s (~0 MH/s)] [Rej: 0/0 (0%)] pool.50btc.com:8332 02/05/2013 10:59:18, [2.622 MH/s (~0 MH/s)] [Rej: 0/0 (0%)] pool.50btc.com:8332 02/05/2013 10:59:31, long poll: new block 000000145d473263 pool.50btc.com:8332 02/05/2013 10:59:48, [2.616 MH/s (~0 MH/s)] [Rej: 0/0 (0%)] pool.50btc.com:8332 02/05/2013 11:00:18, [2.549 MH/s (~0 MH/s)] [Rej: 0/0 (0%)] pool.50btc.com:8332 02/05/2013 11:00:48, [2.630 MH/s (~0 MH/s)] [Rej: 0/0 (0%)] bye ---- Also, GPU Load is nearly 0% when poclbm.exe runs on BOINC. When I run poclbm.exe from the commandline (without BOINC), GPU Load is 99%. Any ideas what is wrong with my approach? Any procedure I should do for testing? How does the networking work in BOINC? Is <needs_network/> tag familiar to you? Thanks! Henri. ____________ ![]() | |
ID: 9182 | Rating: 0 | rate:
![]() ![]() ![]() | |
Message boards : Help! : How do I make my own BOINC-project?
Home | Help | Status | Forums | Glossary | Account
|