Pages: [1]
mindfox
 
BAM!ID: 32809
Joined: 2007-08-19
Posts: 25
Credits: 18,619,758
World-rank: 34,414

2007-09-07 23:25:51
last modified: 2007-09-07 23:56:31

As I write this, I have this host crunching a CPDN work unit, with the 64bit BOINC client installed.

After I did a lot of searching in order to find an easy solution to get my 64bit Boinc client accepted by the CPDN server, I decided that I had to "fool" the server, by intercepting the client request and change it on-the-fly, replacing the 64bit fingerprint with the 32bit one.

I used a php script (which I found ready from onlamp.com) that acts as a proxy server (it opens a socket in a single thread) and a free proxy server for windows.
Then I configured the proxy server to forward all request directed to the scheduler of CPDN, to the php proxy server script.
In that script, I intercept the POST request, replace the 64bit platform string with the 32bit, re-calculate the content-length (so that it evaluates to the CPDN serrver) and send it to the CPDN scheduler.
Then the script receives the response from CPDN and forwards it to the Boinc client.

That was just a proof of concept and I'm going to work this weekend on a complete program for windows so that it can be configured to change a platform string, only for the projects that needs it.

If I read correctly, the 64bit Boinc client on Linux, can run 32bit applcations, as long as it has all necessary 32bit dependencies installed.
If that's the case, then it should be safe to apply the same principle for Linux also (I can create a perl script for that)

Feel free to share your comments, ideas, etc
Tank_Master
 
BAM!ID: 123
Joined: 2006-05-10
Posts: 248
Credits: 410,193,594
World-rank: 4,009

2007-09-09 05:49:07

funny, all I had to do was attach with the 64bit client...
mindfox
 
BAM!ID: 32809
Joined: 2007-08-19
Posts: 25
Credits: 18,619,758
World-rank: 34,414

2007-09-09 08:03:02
last modified: 2007-09-09 08:41:43

funny, all I had to do was attach with the 64bit client...

That's not only funny, but it's strange also.
When I was trying to attach with my client, I saw in the log that the windows_x86_64 platform was not known to the server.

Then I tried to create an 'app' xml file with the executables copied over to the project directory, but then the 'unknown' platform was also not recognized by the server...

Could you please tell me the client version you're using?


P.S.: I just checked all your hosts and I did not see any x64 OS. None of your hosts OS is 64bit.
Are you certain that you're using the 64bit client?
Tank_Master
 
BAM!ID: 123
Joined: 2006-05-10
Posts: 248
Credits: 410,193,594
World-rank: 4,009

2007-09-09 21:27:07
last modified: 2007-09-09 21:31:34

mindfox
 
BAM!ID: 32809
Joined: 2007-08-19
Posts: 25
Credits: 18,619,758
World-rank: 34,414

2007-09-09 21:36:53


Sorry for being so curious, but I'm trying to understand if all my efforts were for nothing.

My 64bit BOINC client couldn't attach to CPDN, because the scheduler kept reporting that "Windows_x86_64" platform is unknown.
Even when I downloaded the 32bit executables manually to the project folder and created an app_info.xml file, the scheduler reported that "anonymous" platform (that's what BOINC is using when an app_info.xml file is present in the project folder) is also unknown.
So I couldn't download WUs from CPDN...
I also found lots of posts (especially in the CPDN forum) werer users reported that 64bit BOINC is not supported and that they should instead use 32bit client.

Help me to understand what's happening with CPDN; did you or did you not attach to CPDN with the 64bit BOINC client?

Thank you for your time
Tank_Master
 
BAM!ID: 123
Joined: 2006-05-10
Posts: 248
Credits: 410,193,594
World-rank: 4,009

2007-09-10 04:34:19

Its been quite some time since I ran climate on here, but it seemed like it did work. Maybe it was seasonal?. If you downlaod the 32bit client, you should need to use the anonymus platform, just delete the xml file. It will run the same as if it were on a 32bit OS.
mindfox
 
BAM!ID: 32809
Joined: 2007-08-19
Posts: 25
Credits: 18,619,758
World-rank: 34,414

2007-09-10 12:52:30

Its been quite some time since I ran climate on here, but it seemed like it did work. Maybe it was seasonal?. If you download the 32bit client, you should need to use the anonymus platform, just delete the xml file. It will run the same as if it were on a 32bit OS.


But that's exactly the problem with CPDN server. It uses an older version of BOINC server which does not know the "anonymous" platform. In case you missed it, I mentioned it to my previous posts. It's not the xml file that breaks things, it's the older version of the BOINC server that CPDN uses.

From their forum, I saw that they are planning on upgrading in the distant feature, but in the mean time, no 64bit BOINC core client for their projects (unless of course you alter the POST request the client makes to the server, which is exactly what I did).

I am almost done with the windows application, just have to solve some minor coding problems that results in memory leaks (that with time could cause serious problems to the OS it runs).

Thank you again for your time to reply to my posts.

P.S. btw, nobody has anything to comment about features regarding this little project I'm doing?
ebahapo
 
BAM!ID: 239
Joined: 2006-05-12
Posts: 662
Credits: 18,928,018
World-rank: 34,024

2007-09-10 14:52:05

P.S. btw, nobody has anything to comment about features regarding this little project I'm doing?

Yes, but you won't like it: I think that it's a bad idea. Enough said.

Good luck, though.
mindfox
 
BAM!ID: 32809
Joined: 2007-08-19
Posts: 25
Credits: 18,619,758
World-rank: 34,414

2007-09-10 16:54:21

P.S. btw, nobody has anything to comment about features regarding this little project I'm doing?

Yes, but you won't like it: I think that it's a bad idea. Enough said.

Good luck, though.


Of course you can understand that I am (or was after this thread, to be honest) very excited about this idea and that when I made a proof of concept, I thought I could share it with others that might be interested.

It's a pitty that you didn't write a little more about the reasons you think that it's a bad idea.
But thank you nevertheless for posting and thank you also for your 'good luck' wish
Honza
BAM!ID: 109
Joined: 2006-05-10
Posts: 154
Credits: 7,657,664,714
World-rank: 456

2007-09-13 09:37:00

There is a simple way to get such a machine running.
Put 32-bit BOINC core into your installation, run it as long to download a CPDN WU(s) and revert back to 64-bit version.

But you must have come across this solution on CPDN boards already.
Spoofing BOINC to change POST command is interesting concept. But I would rather see native support in BOINC as some project already have: sending 32-bit app to 64-bit hosts.

64-bit is a must for demanding projects like CPDN (for new/high-res models). There is still major drawback in BOINC - absence of multi-core support by an aplpication. Hopefuly 6th generation will solve still...before it's too late.
PovAddict
BAM!ID: 115
Joined: 2006-05-10
Posts: 1013
Credits: 5,785,239
World-rank: 76,275

2007-09-13 15:17:02

BOINC 6 will not add support for multi-threaded applications; maybe it will make it for BOINC 7

Ticket #266: Handling of multithreaded work units
mindfox
 
BAM!ID: 32809
Joined: 2007-08-19
Posts: 25
Credits: 18,619,758
World-rank: 34,414

2007-09-13 18:13:41

There is a simple way to get such a machine running.
Put 32-bit BOINC core into your installation, run it as long to download a CPDN WU(s) and revert back to 64-bit version.

But you must have come across this solution on CPDN boards already.
Spoofing BOINC to change POST command is interesting concept. But I would rather see native support in BOINC as some project already have: sending 32-bit app to 64-bit hosts.

64-bit is a must for demanding projects like CPDN (for new/high-res models). There is still major drawback in BOINC - absence of multi-core support by an aplpication. Hopefuly 6th generation will solve still...before it's too late.


Thank you for your post. At least one finds the concept intersting!

I don't think that BOINC *should* add support for multi-threading application, as there is no wrapper that could completely protect the system from bad coding. It's very easy to mess things up inside the application and even lose system stability (of course it depends whether you run it on user-space or not) but in overall, it requires higher standards in coding, which there's no easy way that BOINC could enforce.

It would be very nice though if someone would have an idea on how this could be done (I know I don't have a clue on how to secure the stability of the system BOINC runs, in case an application ruins the threading restrictions).
Pages: [1]

Index :: The Projects :: Win64 with 64bit BOINC client crunches CPDN!!!
Reason: