Message boards : Number crunching : Is source code available?
Author | Message |
---|---|
Tatsuo Yamagata Send message Joined: 13 Nov 17 Posts: 8 Credit: 53,520,560 RAC: 0 |
Hi, I'm wondering source code for recent Amicable Numbers version v2.08 is available or not for Linux 64-bit. I found old source repository in github which supports up to 10^13. Thanks in advance!! Luckiest in the world! |
Sergei Chernykh Project administrator Project developer Send message Joined: 5 Jan 17 Posts: 534 Credit: 72,451,573 RAC: 0 |
|
Tatsuo Yamagata Send message Joined: 13 Nov 17 Posts: 8 Credit: 53,520,560 RAC: 0 |
https://github.com/SChernykh/Amicable/tree/boinc-version-128-bit Thank you for quick response!!! It'll be help me a lot! Luckiest in the world! |
Sergei Chernykh Project administrator Project developer Send message Joined: 5 Jan 17 Posts: 534 Credit: 72,451,573 RAC: 0 |
Thank you for quick response!!! It'll be help me a lot! Do you have any issues with running the existing Linux binary on your system? Don't forget to make a pull request if your modifications could be useful for other users. |
Tatsuo Yamagata Send message Joined: 13 Nov 17 Posts: 8 Credit: 53,520,560 RAC: 0 |
I don't have any issues running stock applications. I just want to optimize it with Intel compiler. I found errors compiling with gcc 7.3.1 coming with Fedora 27 (current latest version is gcc 8.1.1 on Fedora 28). It's in switch statement in Amicable/primesieve/src/primesieve/EratSmall.cpp, many fallthrough were seen; each "case:" statement doesn't end with "break;" and go through next "case:" statement. It is forbidden since gcc/g++ 7. In order to disable the compiler to check, I added "-Wimplicit-fallthrough=0" to WARNINGS and made a new makefile called Makefile. I don't know it's allowed by previous gcc/g++. There is another workaround for c++11 modifying the source file, but it will fail with Visual Studio. As for this fallthrough problem, see https://developers.redhat.com/blog/2017/03/10/wimplicit-fallthrough-in-gcc-7/. Luckiest in the world! |
Tatsuo Yamagata Send message Joined: 13 Nov 17 Posts: 8 Credit: 53,520,560 RAC: 0 |
Another small bug. I checked out boinc version and compiled. It failed to find config.h which was in boinc directory. So I added "-I ../boinc" to INCLUDES variable in Makefile. Luckiest in the world! |
Tatsuo Yamagata Send message Joined: 13 Nov 17 Posts: 8 Credit: 53,520,560 RAC: 0 |
Hi all, I need some help!! I compile an optimized gcc version (optimized for haswell) of amicable number, but I don't know app_info.xml for amicable numbers. I tried some, but all failed with "Syntax error in app_info.xml", because (maybe) app_name and name were wrong. Mine is as follows. What's wrong? <app_info> <app> <name>amicable</name> </app> <file_info> <name>amicable</name> <executable/> </file_info> <app_version> <app_name>amicable</name> <version_num>208</version_num> <api_version>7.11.0</api_version> <file_ref> <file_name>amicable</file_name> <main_program/> </file_ref> </app_version> </app_info> I will distribute optimized linux application for cpu when it's built. Thanks in advance! Luckiest in the world! |
Sergei Chernykh Project administrator Project developer Send message Joined: 5 Jan 17 Posts: 534 Credit: 72,451,573 RAC: 0 |
It says "syntax error" because you have mismatched tags: <app_name>amicable</name> |
Tatsuo Yamagata Send message Joined: 13 Nov 17 Posts: 8 Credit: 53,520,560 RAC: 0 |
It says "syntax error" because you have mismatched tags: Thank you!! Good point. Somehow emacs didn't notify it to me. But fixing it, I still have an error message. Thu 17 May 2018 10:05:11 PM JST | Amicable Numbers | Message from server: Unknown app name amicable in app_info.xml Thu 17 May 2018 10:05:11 PM JST | Amicable Numbers | No tasks sent Thu 17 May 2018 10:05:11 PM JST | Amicable Numbers | Message from server: Your app_info.xml file doesn't have a usable version of Amicable Numbers up to 10^20. So the app_name must include info on 10^20. What app_name is set on the server, Sergei? EDIT: I need to edit Amicable/Amicable/Platform_GCC_Linux.h so that Intel Compiler can utilize __int64. "typedef long long __int64;" gives an error with Intel compiler, so I modified it so that Intel compiler should use "#define __int64 long long". Intel compiler uses a predefined macro __INTEL_COMPILER, so #ifndef/#else/#endif were used. And I saw http://boinc.berkeley.edu/wiki/Anonymous_platform and changed version_num to 280, but the error message was the same. Luckiest in the world! |
Sergei Chernykh Project administrator Project developer Send message Joined: 5 Jan 17 Posts: 534 Credit: 72,451,573 RAC: 0 |
So the app_name must include info on 10^20. What app_name is set on the server, Sergei? app_name is amicable_10_20 |
Tatsuo Yamagata Send message Joined: 13 Nov 17 Posts: 8 Credit: 53,520,560 RAC: 0 |
Ok. I've done it! Hint was in the name of work units' names. They begin with amicable_10_20, so I set it to the app_name, it worked! But the number of cpus must be set as avg_ncpus in app_info.xml file manually. Otherwise threads of the number of cpu minus one were made. Anyway it worked!! Thank you for your help! EDIT: oh! Sergei, thank you for mentioning it! EDIT2: Intel Compiler version has only half of the original EST on my Haswell rig, but I don't know it works so nicely, because the compiler has much advantage in floating point calculations. I will test this for some days. Luckiest in the world! |
Tatsuo Yamagata Send message Joined: 13 Nov 17 Posts: 8 Credit: 53,520,560 RAC: 0 |
hmmmm.... I used the same task, https://sech.me/boinc/Amicable/workunit.php?wuid=5678963 in standalone mode. The result is Haswell (4790K, 4th gen. core i7) optimized: 41929.51 seconds. Stock application: 42847.81 seconds. Only difference of less than 2.5%. It can be within error!! Intel Compiler doesn't have little advantage in integer math. I will not make further and won't release optimized apps. Sorry.... Luckiest in the world! |
Message boards : Number crunching : Is source code available?
©2024 Sergei Chernykh