Welcome to MilkyWay@home

source v11 released

Message boards : Application Code Discussion : source v11 released
Message board moderation

To post messages, you must log in.

AuthorMessage
Profile Travis
Volunteer moderator
Project administrator
Project developer
Project tester
Project scientist

Send message
Joined: 30 Aug 07
Posts: 2046
Credit: 26,480
RAC: 0
Message 8675 - Posted: 19 Jan 2009, 19:50:21 UTC
Last modified: 19 Jan 2009, 20:10:07 UTC

I've updated the code releases directory with the v11 source code.

If you look in the makefiles, there's two new flags that need to be set when compiling the application:

APP_VERSION = 0.11
APP_NAME = your_app_name

-DBOINC_APP_VERSION=$(APP_VERSION)
and
-DBOINC_APP_NAME='"$(APP_NAME)"'

This will let us know that the application was compiled as version 0.11 by "your_app_name".

The stock app is using:
APP_NAME=stock
so please don't use it for your own compiled applications.

We're doing this because of the problems we're having with some of the current optimized windows applications, which are returning incorrect results. So as of tuesday/wednesday, we'll not be awarding credit to applications compiled without these flags (ie, those that don't write the app_name and app_version to the WU's result).

This will let us know where our results are coming from, to help us debug our searches, and help you debug your optimized applications.

Also, unfortunately, I think this is the only sure-fire way to get people to upgrade from these incorrect applications. Our dynamic error checking isn't working yet, mainly because too many bogus results are being returned by these incorrect applications; which throws off those calculations.

The source also has three new test parameters (for stripes 79, 82 and 86, respectively):
astronomy_parameters-79.txt
stars-79.txt
search_parameters-79.txt

astronomy_parameters-82.txt
stars-82.txt
search_parameters-82.txt

astronomy_parameters-86.txt
stars-86.txt
search_parameters-86.txt

To test these, simply rename these files, ex:
cp stars-79.txt stars.txt
cp astronomy_parameters-79.txt astronomy_parameters.txt
cp search_parameters-79.txt search_parameters.txt

I've added the set_parameters.sh to automate this, just run ./set_parameters.sh 79 for example.

Then run your binary in the same directory. On some systems you might have to have a blank "out" file or BOINC will error out. These should give the following results in the "out" file:

79:
searchname
parameters [8]: 0.342173733203920 25.951791084662300 -2.170941473882660 38.272511356953906 30.225190442596112 2.214906001337289 0.323161690642917 2.774024471628528
metadata: this is the metadata
fitness: -2.946683357256020
your_app_name: 0.11

82:
searchname
parameters [8]: 0.405879611547422 17.529961843393409 -1.857514527214484 29.360893891378243 31.228263575178566 -1.551741065334000 0.064096152599308 2.554282099127810
metadata: this is the metadata
fitness: -2.985569777902147
your_app_name: 0.11

86:
searchname
parameters [8]: 0.733171635575244 14.657212876628332 -1.705465347395041 16.911711745343634 28.077212666463502 -1.203290851581461 3.527360643924728 2.224821450587501
metadata: this is the metadata
fitness: -3.027909854710189
your_app_name: 0.11
ID: 8675 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
ebahapo
Avatar

Send message
Joined: 6 Sep 07
Posts: 66
Credit: 636,861
RAC: 0
Message 8678 - Posted: 19 Jan 2009, 20:56:50 UTC
Last modified: 19 Jan 2009, 21:02:31 UTC

I see a problem at line 16: -O here will undo -O2 later on. It's not necessary to specify SSE2 for x86-64 because it's the default and since x87 doesn't support vectors, it's useless to specify -ftree-vectorize for x86.

May I propose this patch against make.linux?

--- makefile	2009-01-19 14:40:07.085583200 -0600
+++ make.linux	2009-01-19 14:54:06.593926700 -0600
@@ -13,17 +13,17 @@ VARIANTFLAGS = -DGMLE_BOINC -DBOINC_APP_
 CXXFLAGS_ALL = $(VARIANTFLAGS) \
        -funroll-loops \
        -g \
-       -O \
        -I$(BOINC_DIR)
+LDFLAGS_ALL = -static-libgcc
                                                                                                                                                                         
 CXX_i686 = g++
-CXXFLAGS_i686 = -m32 -O2 -ftree-vectorize $(CXXFLAGS_ALL)
-LDFLAGS_i686 = -L/usr/X11R6/lib -L../../linux32_libboinc
+CXXFLAGS_i686 = -m32 -O2 $(CXXFLAGS_ALL)
+LDFLAGS_i686 = -L/usr/X11R6/lib -L../../linux32_libboinc $(LDFLAGS_ALL)
 #LDFLAGS_i686 = -L$(BOINC_LIB_LINK_DIR) -L$(BOINC_API_LINK_DIR)
                                                                                                                                                                         
 CXX_x86_64 = g++
-CXXFLAGS_x86_64 = -O2 -msse2 -ftree-vectorize $(CXXFLAGS_ALL)
-LDFLAGS_x86_64 = -L/usr/local/lib
+CXXFLAGS_x86_64 = -O2 -ftree-vectorize $(CXXFLAGS_ALL)
+LDFLAGS_x86_64 = -L/usr/local/lib -static $(LDFLAGS_ALL)
 #LDFLAGS_x86_64 = -L/usr/local/lib -L/usr/X11R6/lib
 #LDFLAGS_x86_64 = -L$(BOINC_LIB_LINK_DIR) -L$(BOINC_API_LINK_DIR)
                                                                                                                                                                         
@@ -59,12 +59,12 @@ all: $(PROGS)
 app_i686: OBJ_CXX = $(CXX_i686)
 app_i686: OBJ_CXXFLAGS = $(CXXFLAGS_i686)
 app_i686: $(APP_OBJS) $(SEARCH_OBJS) $(UTIL_OBJS) $(BOINC_API_LINK_DIR)/libboinc_api.a $(BOINC_LIB_LINK_DIR)/libboinc.a
-       $(CXX_i686) $(LDFLAGS_i686) $(CXXFLAGS_i686) -Wl --export_dynamic -o milkyway_$(APP_VERSION)_i686-pc-linux-gnu $(APP_OBJS) $(SEARCH_OBJS) $(UTIL_OBJS) -lm -lboinc_api -lboinc -pthread
+       $(CXX_i686) $(LDFLAGS_i686) $(CXXFLAGS_i686) -o milkyway_$(APP_VERSION)_i686-pc-linux-gnu $(APP_OBJS) $(SEARCH_OBJS) $(UTIL_OBJS) -lm -lboinc_api -lboinc -pthread
                                                                                                                                                                         
 app_x86_64: OBJ_CXX = $(CXX_x86_64)
 app_x86_64: OBJ_CXXFLAGS = $(CXXFLAGS_x86_64)
 app_x86_64: $(APP_OBJS) $(SEARCH_OBJS) $(UTIL_OBJS) $(BOINC_API_LINK_DIR)/libboinc_api.a $(BOINC_LIB_LINK_DIR)/libboinc.a
-       $(CXX_x86_64) $(LDFLAGS_x86_64) $(CXXFLAGS_x86_64) -Wl -static -static-libgcc -o milkyway_$(APP_VERSION)_x86_64-pc-linux-gnu $(APP_OBJS) $(SEARCH_OBJS) $(UTIL_OBJS) -lm -lboinc_api -lboinc -pthread
+       $(CXX_x86_64) $(LDFLAGS_x86_64) $(CXXFLAGS_x86_64) -o milkyway_$(APP_VERSION)_x86_64-pc-linux-gnu $(APP_OBJS) $(SEARCH_OBJS) $(UTIL_OBJS) -lm -lboinc_api -lboinc -pthread
                                                                                                                                                                         
 .C.o:
        $(OBJ_CXX) $(OBJ_CXXFLAGS) $(INC) -Wall -x c++ -c $< -o $@


HTH
ID: 8678 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile Travis
Volunteer moderator
Project administrator
Project developer
Project tester
Project scientist

Send message
Joined: 30 Aug 07
Posts: 2046
Credit: 26,480
RAC: 0
Message 8679 - Posted: 19 Jan 2009, 20:57:40 UTC - in response to Message 8678.  
Last modified: 19 Jan 2009, 20:59:09 UTC

I see a problem at line 16: -O here will undo -O2 later on. May I propose this patch against make.linux?

--- makefile	2009-01-19 14:40:07.085583200 -0600
+++ make.linux	2009-01-19 14:54:06.593926700 -0600
@@ -13,17 +13,17 @@ VARIANTFLAGS = -DGMLE_BOINC -DBOINC_APP_
 CXXFLAGS_ALL = $(VARIANTFLAGS) \
 	-funroll-loops \
 	-g \
-	-O \
 	-I$(BOINC_DIR)
+LDFLAGS_ALL = -static-libgcc
 
 CXX_i686 = g++
 CXXFLAGS_i686 = -m32 -O2 -ftree-vectorize $(CXXFLAGS_ALL)
-LDFLAGS_i686 = -L/usr/X11R6/lib -L../../linux32_libboinc
+LDFLAGS_i686 = -L/usr/X11R6/lib -L../../linux32_libboinc $(LDFLAGS_ALL)
 #LDFLAGS_i686 = -L$(BOINC_LIB_LINK_DIR) -L$(BOINC_API_LINK_DIR)
 
 CXX_x86_64 = g++
-CXXFLAGS_x86_64 = -O2 -msse2 -ftree-vectorize $(CXXFLAGS_ALL)
-LDFLAGS_x86_64 = -L/usr/local/lib
+CXXFLAGS_x86_64 = -O2 -ftree-vectorize $(CXXFLAGS_ALL)
+LDFLAGS_x86_64 = -L/usr/local/lib -static $(LDFLAGS_ALL)
 #LDFLAGS_x86_64 = -L/usr/local/lib -L/usr/X11R6/lib
 #LDFLAGS_x86_64 = -L$(BOINC_LIB_LINK_DIR) -L$(BOINC_API_LINK_DIR)
 
@@ -59,12 +59,12 @@ all: $(PROGS)
 app_i686: OBJ_CXX = $(CXX_i686)
 app_i686: OBJ_CXXFLAGS = $(CXXFLAGS_i686)
 app_i686: $(APP_OBJS) $(SEARCH_OBJS) $(UTIL_OBJS) $(BOINC_API_LINK_DIR)/libboinc_api.a $(BOINC_LIB_LINK_DIR)/libboinc.a
-	$(CXX_i686) $(LDFLAGS_i686) $(CXXFLAGS_i686) -Wl --export_dynamic -o milkyway_$(APP_VERSION)_i686-pc-linux-gnu $(APP_OBJS) $(SEARCH_OBJS) $(UTIL_OBJS) -lm -lboinc_api -lboinc -pthread
+	$(CXX_i686) $(LDFLAGS_i686) $(CXXFLAGS_i686) -o milkyway_$(APP_VERSION)_i686-pc-linux-gnu $(APP_OBJS) $(SEARCH_OBJS) $(UTIL_OBJS) -lm -lboinc_api -lboinc -pthread
 
 app_x86_64: OBJ_CXX = $(CXX_x86_64)
 app_x86_64: OBJ_CXXFLAGS = $(CXXFLAGS_x86_64)
 app_x86_64: $(APP_OBJS) $(SEARCH_OBJS) $(UTIL_OBJS) $(BOINC_API_LINK_DIR)/libboinc_api.a $(BOINC_LIB_LINK_DIR)/libboinc.a
-	$(CXX_x86_64) $(LDFLAGS_x86_64) $(CXXFLAGS_x86_64) -Wl -static -static-libgcc -o milkyway_$(APP_VERSION)_x86_64-pc-linux-gnu $(APP_OBJS) $(SEARCH_OBJS) $(UTIL_OBJS) -lm -lboinc_api -lboinc -pthread
+	$(CXX_x86_64) $(LDFLAGS_x86_64) $(CXXFLAGS_x86_64) -o milkyway_$(APP_VERSION)_x86_64-pc-linux-gnu $(APP_OBJS) $(SEARCH_OBJS) $(UTIL_OBJS) -lm -lboinc_api -lboinc -pthread
 
 .C.o:
 	$(OBJ_CXX) $(OBJ_CXXFLAGS) $(INC) -Wall -x c++ -c $< -o $@


HTH


Thanks, i'll update the release.

*edit*

The new make.linux should have this fix.
ID: 8679 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile speedimic
Avatar

Send message
Joined: 22 Feb 08
Posts: 260
Credit: 57,387,048
RAC: 0
Message 8680 - Posted: 19 Jan 2009, 21:06:15 UTC - in response to Message 8675.  

Is there any deviation allowed in point of fitness?
The last two digits seem to drift away from me...
mic.


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

Send message
Joined: 3 Aug 08
Posts: 89
Credit: 255,801
RAC: 0
Message 8681 - Posted: 19 Jan 2009, 21:10:49 UTC

thx Travis for the new code release , ive just download it and im gonna start my tests!

It's time for drilling !!

Have a nice day guys!


ID: 8681 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile Travis
Volunteer moderator
Project administrator
Project developer
Project tester
Project scientist

Send message
Joined: 30 Aug 07
Posts: 2046
Credit: 26,480
RAC: 0
Message 8683 - Posted: 19 Jan 2009, 21:25:29 UTC - in response to Message 8680.  

Is there any deviation allowed in point of fitness?
The last two digits seem to drift away from me...


If the last digit or two is off this is probably just due to the architecture and not a problem.
ID: 8683 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
John Clark

Send message
Joined: 4 Oct 08
Posts: 1734
Credit: 64,228,409
RAC: 0
Message 8757 - Posted: 20 Jan 2009, 16:55:08 UTC
Last modified: 20 Jan 2009, 16:58:36 UTC

Travis

I currently use, what I believe, are the OKed optimised MW clients across my various rigs (in the flavours to suit the different CPUs).

I also have a deactivated version of the stock MW client (milkyway_0.7_windows_intelx86), which I can easily return to in the event the assimlator/validator code dumping my optimised client results. This may be for the reasons you give below.

If I return to the stock client, will I need to download a new windows stock client (in the light of your comments on header identification and source code?

If I do, where can I get it?
ID: 8757 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile Travis
Volunteer moderator
Project administrator
Project developer
Project tester
Project scientist

Send message
Joined: 30 Aug 07
Posts: 2046
Credit: 26,480
RAC: 0
Message 8760 - Posted: 20 Jan 2009, 17:25:08 UTC - in response to Message 8680.  

Is there any deviation allowed in point of fitness?
The last two digits seem to drift away from me...


Changes in the last two digits should be fine, that's just an architecture issue. Any more than that i'd start to get worried.
ID: 8760 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile Travis
Volunteer moderator
Project administrator
Project developer
Project tester
Project scientist

Send message
Joined: 30 Aug 07
Posts: 2046
Credit: 26,480
RAC: 0
Message 8761 - Posted: 20 Jan 2009, 17:26:09 UTC - in response to Message 8757.  

Travis

I currently use, what I believe, are the OKed optimised MW clients across my various rigs (in the flavours to suit the different CPUs).

I also have a deactivated version of the stock MW client (milkyway_0.7_windows_intelx86), which I can easily return to in the event the assimlator/validator code dumping my optimised client results. This may be for the reasons you give below.

If I return to the stock client, will I need to download a new windows stock client (in the light of your comments on header identification and source code?

If I do, where can I get it?


Dave should be updating the windows app today to v12. There should be a v10 available on the server.
ID: 8761 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
John Clark

Send message
Joined: 4 Oct 08
Posts: 1734
Credit: 64,228,409
RAC: 0
Message 8766 - Posted: 20 Jan 2009, 17:53:52 UTC

Thanks, Travis. I will download V12 as soon as it is referred to, but will back it up with V10. I think we will be reverting to the stock client until new optimised clients conforming to your requirements are released. Your assimlator/validator script is likely to make all the current opti-client stock obsolete.
ID: 8766 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Temujin

Send message
Joined: 12 Oct 07
Posts: 77
Credit: 404,471,187
RAC: 0
Message 8767 - Posted: 20 Jan 2009, 18:48:34 UTC - in response to Message 8675.  

The source also has three new test parameters (for stripes 79, 82 and 86, respectively):
.
.
.
I've added the set_parameters.sh to automate this, just run ./set_parameters.sh 79 for example.

I've been having terrible trouble with fitness results from my app.
Speedimic suggested deleting all files produced by running the app against the test WUs and that has corrected my fitness.

So, i've amended set_parameters.sh to be

rm -f boinc_finish_called
rm -f init_data.xml
rm -f astronomy_checkpoint
rm -f out
rm -f stderr.txt

cp stars-$1.txt stars.txt
cp astronomy_parameters-$1.txt astronomy_parameters.txt
cp search_parameters-$1.txt search_parameters.txt


that takes care of things automatically
ID: 8767 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile Travis
Volunteer moderator
Project administrator
Project developer
Project tester
Project scientist

Send message
Joined: 30 Aug 07
Posts: 2046
Credit: 26,480
RAC: 0
Message 8770 - Posted: 20 Jan 2009, 19:18:00 UTC - in response to Message 8767.  

The source also has three new test parameters (for stripes 79, 82 and 86, respectively):
.
.
.
I've added the set_parameters.sh to automate this, just run ./set_parameters.sh 79 for example.

I've been having terrible trouble with fitness results from my app.
Speedimic suggested deleting all files produced by running the app against the test WUs and that has corrected my fitness.

So, i've amended set_parameters.sh to be

rm -f boinc_finish_called
rm -f init_data.xml
rm -f astronomy_checkpoint
rm -f out
rm -f stderr.txt

cp stars-$1.txt stars.txt
cp astronomy_parameters-$1.txt astronomy_parameters.txt
cp search_parameters-$1.txt search_parameters.txt


that takes care of things automatically


Good idea, I've updated the set_parameters.sh for the next release. One thing to watch out for is that some clients (for whatever reason) require a blank out.sh file, so I've made it:

rm -f boinc_finish_called
rm -f init_data.xml
rm -f astronomy_checkpoint
rm -f out
rm -f stderr.txt
touch out

cp stars-$1.txt stars.txt
cp astronomy_parameters-$1.txt astronomy_parameters.txt
cp search_parameters-$1.txt search_parameters.txt


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

Send message
Joined: 22 Feb 08
Posts: 260
Credit: 57,387,048
RAC: 0
Message 8772 - Posted: 20 Jan 2009, 19:30:37 UTC - in response to Message 8770.  

The source also has three new test parameters (for stripes 79, 82 and 86, respectively):
.
.
.
I've added the set_parameters.sh to automate this, just run ./set_parameters.sh 79 for example.

I've been having terrible trouble with fitness results from my app.
Speedimic suggested deleting all files produced by running the app against the test WUs and that has corrected my fitness.

So, i've amended set_parameters.sh to be

rm -f boinc_finish_called
rm -f init_data.xml
rm -f astronomy_checkpoint
rm -f out
rm -f stderr.txt

cp stars-$1.txt stars.txt
cp astronomy_parameters-$1.txt astronomy_parameters.txt
cp search_parameters-$1.txt search_parameters.txt


that takes care of things automatically


Good idea, I've updated the set_parameters.sh for the next release. One thing to watch out for is that some clients (for whatever reason) require a blank out.sh file, so I've made it:

rm -f boinc_finish_called
rm -f init_data.xml
rm -f astronomy_checkpoint
rm -f out
rm -f stderr.txt
touch out

cp stars-$1.txt stars.txt
cp astronomy_parameters-$1.txt astronomy_parameters.txt
cp search_parameters-$1.txt search_parameters.txt



Damn, sounds like good teamwork... ;)
mic.


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

Message boards : Application Code Discussion : source v11 released

©2024 Astroinformatics Group