Seti@Home optimized science apps and information
 
Welcome, Guest. Please login or register.
Did you miss your activation email?
23 Nov 2008, 01:20:20 pm

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  |  Windows  |  Topic: BOINC as library 0 Members and 0 Guests are viewing this topic. « previous next »
Pages: 1 [2] 3 Go Down Print
Author Topic: BOINC as library  (Read 4324 times)
Raistmer
Code Wizard
Knight who says 'Ni!'
*****
Offline Offline

Posts: 1414



View Profile
Re: BOINC as library
« Reply #15 on: 18 Oct 2007, 06:49:28 pm »

Well, I just pick up sources with that option set active, then changed paths to correspond my installation (different places for ICC and IPP, ICC 10 instead 9, IPP 5.2 instead 5.1 and so on), changed defines to USE_SSE2, changed compiler options to  /QxW.
So now it more correspond to SSE2-build than to anything else Smiley When I change to Release32-NoGFX-xW option set I get a lot of errors cause there are old wrong paths IMHO.
The host on that VS installed powered by AMD 64 Venice wich supports SSE2/SSE3 instruction sets but it seems there is no sense to compile with ICC SSE3 for AMD 64.
Logged
Jason G
Global Moderator
Knight who says 'Ni!'
*****
Online Online

Posts: 2262


View Profile
Re: BOINC as library
« Reply #16 on: 18 Oct 2007, 06:58:49 pm »

The case of the missing intermediate files! Shocked.  I must go off to school now but I'll check and see if you found them when I get home.  I think you are right that the setting shouldn't change the intermediate output directory/files as that is inherited from solution configuration anyway.

Well good luck , and maybe I can look some more when I get home (if you haven't already found them).
[We can step by step through AnalyzeFuncs.cpp setiings if you need]

Oh, did you do the seti_boinc Linker include directories as well ?

Jason
« Last Edit: 18 Oct 2007, 07:02:45 pm by j_groothu » Logged
Raistmer
Code Wizard
Knight who says 'Ni!'
*****
Offline Offline

Posts: 1414



View Profile
Re: BOINC as library
« Reply #17 on: 18 Oct 2007, 07:09:42 pm »

Yes, linker include paths are changed too.
But (!) when project was compiled under Release32-NoGFX-xW option set it failed to compile as whole, but there is analyzePoT.obj analyzeReport.obj in Release32-NoGFX-xW dir.
And there were no these obj when Release32-NoGFX-xP was used. So at morning I will try accomodate Release32-NoGFX-xW to my setup instead of -xP one. Probably I did something wrong with *-xP option set....
Thank you for support and good luck to you too Smiley
Logged
Jason G
Global Moderator
Knight who says 'Ni!'
*****
Online Online

Posts: 2262


View Profile
Re: BOINC as library
« Reply #18 on: 19 Oct 2007, 07:08:07 pm »

Sounds like progress! Cheesy .. I hope you made notes the first time through all those settings!, mine are in green felt pen scrawled all over an old envelope, maybe I should make them into a text file one day Tongue
Logged
Jason G
Global Moderator
Knight who says 'Ni!'
*****
Online Online

Posts: 2262


View Profile
Re: BOINC as library
« Reply #19 on: 21 Oct 2007, 08:13:34 am »

Back along the lines of your original post Raistmer (Boinc as library) ... I've been having some crazy thoughts.

Given the already  fairly neat encapsulation of certain parts of the science application (namely the boinc interface, graphics api, xml utils, jpeg maybe more...) ,and that each instance of the science app (typically 2 to 8 copies) uses these. Might these low traffic functions actually be worthy candidates  for ... *shudder* ... implementation as one or more DLLs? [or equivalent for other OSes, where available]

Certainly reduce the overall memory footprint , especially for many cores. (might influence cache too?)  Can you [or anyone else for that matter] think of other reasons this may be a good or bad idea?

Jason
« Last Edit: 21 Oct 2007, 08:23:28 am by j_groothu » Logged
Raistmer
Code Wizard
Knight who says 'Ni!'
*****
Offline Offline

Posts: 1414



View Profile
Re: BOINC as library
« Reply #20 on: 27 Oct 2007, 06:03:50 pm »

Well, as big fan of QNX OS I think the more modular app is the better as far as it doesnt impact performance Wink Another plus of dll'ed BOINC interface is shortened build times - devs certainly should like this idea Wink

Considering my build attemts, switching to Release32-NoGFX-xW options set brought bunch of compile errors (12 errors) in benchmark.cpp and  cpu_x86.cpp. I have strong impression that Optimizer project just simulated compilation before (with no errors but no objs too).  There are all objs from tis project now besides these two sourses that failed to compile.
Will investigate errors more closely then post.

P.S. after closer look only 3 errors remain (other originated from misplaced #endif, my fault). All belong to these lines of code ( cpu_x86.cpp).
case _INTEL:
         cache.shared_L1_L2 = true;
         bool hyper   = testBit(1,edx_,28);

.\cpu_x86.cpp(143): error: invalid combination of type specifiers

hyper is defined as _int64 somewhere. So changing variable name solves this error (and remaining 2 too).

P.P.S. Well, now got     position_history( 0 ),-related error too  Roll Eyes After adding some missing #include statement and forcing const char* to char* conversions (hope it will not corrupt memory at run time %) ) it's the only remaining error.
« Last Edit: 27 Oct 2007, 08:16:01 pm by Raistmer » Logged
Jason G
Global Moderator
Knight who says 'Ni!'
*****
Online Online

Posts: 2262


View Profile
Re: BOINC as library
« Reply #21 on: 27 Oct 2007, 11:34:15 pm »

Well, now got     position_history( 0 ),-related error too  .....

Yeah, I figured the cryptic message was saying there was no constructor of type position_history( int) .... and position_history seems to be a vector list or some such.    Carefully commenting the '0'  out seemed to let C++ use the default constructor,  that 'seemed' to work for me.

I'm all for either explicitly using an existing correct constructor to initialise with though, or ,making a constructor of the right form if really needed .

Have fun, you're nearly there Cheesy After a few weeks on and off, I'm still pretty mystified by a lot of it but baby steps and lots of silly questions seems to be clarifying a lot gradually.

Jason
« Last Edit: 28 Oct 2007, 01:35:41 am by j_groothu » Logged
Raistmer
Code Wizard
Knight who says 'Ni!'
*****
Offline Offline

Posts: 1414



View Profile
Re: BOINC as library
« Reply #22 on: 28 Oct 2007, 05:57:23 am »

Yes, I commented it out too for a moment.
Now encounter some linker errors. Some of these originate from using evaluation version of IPP (so there are slightly different lib names). But remaining are much worse. For example,
linker cant find definition of parse_command_line function. There is declaration
extern int parse_command_line(char*, char**);
in str_util.h but... no definition was found in project sources. I hardly believe this function belongs to IPP. So where to find it's definition still open question ...  Shocked
Logged
Jason G
Global Moderator
Knight who says 'Ni!'
*****
Online Online

Posts: 2262


View Profile
Re: BOINC as library
« Reply #23 on: 28 Oct 2007, 06:07:46 am »

.... So where to find it's definition still open question ...  Shocked

Hmm, in mine that seems to be in Util.C , part of the libboinc solution.  maybe your build order has that being compiled after set_boinc where it is called from main.cpp?  or maybe util.H is not included [at top of main.cpp] for some reason?

[Ahhh, maybe libboinc directory is not added in 'Additional include directories? for seti_boinc soln]
« Last Edit: 28 Oct 2007, 06:17:08 am by j_groothu » Logged
Raistmer
Code Wizard
Knight who says 'Ni!'
*****
Offline Offline

Posts: 1414



View Profile
Re: BOINC as library
« Reply #24 on: 28 Oct 2007, 11:17:25 am »

In my BOINC sources this function defined boinc\lib\in str_util.c. And this file doesnt included in project source tree. That's why I didnt find definition while conducting search in project files via VS. File search on entire directory via FAR was more successfull Smiley
Probably I should include this file in libboinc project in project tree.
(I use one of the latests BOINC sources, doesn't downloaded from this site)

P.S. Now only 3 unresolved links remains. Will search for another missing sources...

P.P.S. LoL Cheesy Great definitions of missing links from boinc\api\static_graphics.C
void boinc_app_mouse_button(int x, int y, int which, int is_down) {
}
void boinc_app_mouse_move(int x, int y, int left, int middle, int right) {
}
Probably there should be // ToDo comment Wink

I added this file to libboincapi, but it doesn't compile - missing boinc_resolve_filename function declaration. It seems there are some differences in BOINC api that needed to be reflected in project tree.

P.P.P.S. After some modifications of project tree and adding some #include statements I got exe-file. Hope it pass validity tests ... (fingers crossed) Smiley
« Last Edit: 28 Oct 2007, 11:50:17 am by Raistmer » Logged
Jason G
Global Moderator
Knight who says 'Ni!'
*****
Online Online

Posts: 2262


View Profile
Re: BOINC as library
« Reply #25 on: 28 Oct 2007, 11:49:39 am »

LOL, Like a house of cards!
Logged
Jason G
Global Moderator
Knight who says 'Ni!'
*****
Online Online

Posts: 2262


View Profile
Re: BOINC as library
« Reply #26 on: 28 Oct 2007, 12:01:29 pm »

This many generations of Boinc interface  is one of the many things I got an answer about from Joe Segur.  I asked which was the best to use and if there was a preferred version.  The basics of Joe's answer to that were something like 'boinc sources from about the time of that science app build. Which semmed reasonable ... So for some reason I ended up sticking with the boinc sources out of the 1.31 package and never bothered updating Cheesy sounds like I'll keep it that way, for the time being,  if there are many more differences Cheesy
Logged
Raistmer
Code Wizard
Knight who says 'Ni!'
*****
Offline Offline

Posts: 1414



View Profile
Re: BOINC as library
« Reply #27 on: 28 Oct 2007, 05:09:02 pm »

Well, "results strong similar" but it ~2% slower than optimal one for AMD 64 processors.
Think I create new thread and attach my build (it's sources to be precise) to post. Maybe someone saves time by compiling already modified sources.
Logged
_heinz
Code Wizard
Knight who says 'Ni!'
*****
Offline Offline

Posts: 718


View Profile
Re: BOINC as library
« Reply #28 on: 28 Oct 2007, 06:19:53 pm »

Congratulation.... magnificent !.
heinz
Logged
Raistmer
Code Wizard
Knight who says 'Ni!'
*****
Offline Offline

Posts: 1414



View Profile
Re: BOINC as library
« Reply #29 on: 29 Oct 2007, 10:24:31 am »

Thank you  Cool
With Jason's help and support indeed  Smiley

rared distributive took ~22MB... I tried to upload it yesterday night with some comments but at morning discovered that IE crashed Sad.
Maybe it's better to attach to few sequental posts... will try again later.
Logged
Pages: 1 [2] 3 Go Up Print 
Seti@Home optimized science apps and information  |  Optimized Seti@Home apps  |  Windows  |  Topic: BOINC as library « previous next »
Jump to:  


Quote!
Success always occurs in private, and failure in full view.
- Murphy's Law

 
Site Statistics
Total Members:1,072
Total Posts:10,833
Total Topics:447
Downloads
Apps
Windows R-1.x25,148
Windows R-2.020,356
Windows R-2.236,628
Linux 32bit 1.x6,574
Linux 32bit 2.24,406
Linux 64bit 2.21,784
Alpha/IA64204
FreeBSD629
HPUX346
Subtotal:94,896
Source packs:4,071
Tool/WU packs:7,931
Total:157,881
GBs dl'd:282.03
Pages served
Today:2,411
Total:3,359,427
(since 6/26/2006)
173 Donations to S@H
U.S. Dollars:3,196.59
Euros:863.90
Last 24h:$ 0.00
Avg./24h:$ 6.62
Estim. total:$ 4,319.66
Latest Member:
Luke@SETI
 
 
Seti@Home optimized science apps and information | Powered by Enigma 2.0 (RC1).
© 2003-2008, 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!