Posts by manalog
log in
21) Message boards : Wish List : Android app? (Message 1830)
Posted 15 May 2020 by manalog
Yes Valter, the strings you posted are correct.
Looking forward to crunch some wu. I will put an old phone with the broken screen H24 on this project.
I have seen that the WUs coming from Juanro49's device are validating correctly :)
Perhaps you could put the application in "beta" mode so that few people in the forum can start testing if everything goes well before making the app public.
On the other hand, I think that we will have to compare the running time because we should figure out if this app is optimized or not to work on Android. Also, it misses all SIMD extensions, right?
22) Message boards : Wish List : Android app? (Message 1827)
Posted 14 May 2020 by manalog
Good news, so it seems to be working even if the app is not compiled with the android tools and library.
I tried to compile the app in this way (http://gene.disi.unitn.it/test/forum_thread.php?id=270) but it was too difficult for me; I think if someone wants to try it it should be the best way to ensure efficiency and optimization.
By the way, this is a great result.
So let's sum up, which android platforms has been tested by now?
Aarch64?
Arm (32 bit)?
Intel x86?
I do not own a rooted android device, but I think we could ask valterc to set the server to provide a beta android app (with the same binary of OpenWRT) so that we can test it.
23) Message boards : Number crunching : Please fix computer #57018 - only invalids! (Message 1801)
Posted 22 Apr 2020 by manalog
I have found another one of these bad hosts: #34120
24) Message boards : Number crunching : SSE3 optimization and Android binary (Message 1792)
Posted 19 Apr 2020 by manalog
I tried all day, but I am not able to do it. Now I receive
BoincFile.cpp:22:18: fatal error: string: No such file or directory #include <string> ^ compilation terminated. Makefile:79: recipe for target 'BoincFile.o' failed make: *** [BoincFile.o] Error 1
and this is weird because string.h is a basic C++ library.

I give up the idea, I hope that someone more experienced than me may do it.
In case, my only suggestion is to build for all the possible platforms: once you are able to compile it's a matter of minutes to compile for several platforms, and it would be an added value to tn-grid. For example, in this moment no projects are able to run on android-x86. [/code]
25) Message boards : Number crunching : SSE3 optimization and Android binary (Message 1790)
Posted 19 Apr 2020 by manalog
double post
26) Message boards : Number crunching : SSE3 optimization and Android binary (Message 1789)
Posted 19 Apr 2020 by manalog
Thank you for your hints, Daniel.
I tried to go further in the compilation. Please keep in mind that I am an absolute beginner in the field so it is possible that I am doing silly mistakes.
What I've done:
1) Downloaded the android-r21 ndk. I think they changed something from the older version, in particular the compiler binary;
2) Compiled boinc for android-arm using the scripts provided in the source tree. The script compiled also an android toolkit (android-tc) and everything went smooth (and very fast despite I am using just a Core2Duo laptop)
3) I modified the Makefile present in PC-IM source tree using your suggestion:
# SSE2, 64-bit #ARCH += -march=core2 -mtune=core2 -m64 # AVX, 64-bit #ARCH += -march=core2 -mtune=generic -msse4.2 -mpopcnt -maes -mpclmul -mavx -m64 # AVX+FMA, 64-bit #ARCH += -march=core2 -mtune=generic -msse4.2 -mpopcnt -maes -mpclmul -mavx -mfma -m64 # AVX2+FMA, 64-bit #ARCH += -march=core2 -mtune=generic -msse4.2 -mpopcnt -maes -mpclmul -mavx -mfma -mavx2 -m64 # 32-bit, no SIMD #ARCH += -m32 -mno-sse # SSE2, 32-bit #ARCH += -march=core2 -mtune=core2 -m32 # AVX, 32-bit #ARCH += -march=core2 -mtune=generic -msse4.2 -mpopcnt -maes -mpclmul -mavx -m32 # AVX+FMA, 32-bit #ARCH += -march=core2 -mtune=generic -msse4.2 -mpopcnt -maes -mpclmul -mavx -mfma -m32 #--- nuovo --- ARCH += -march=armv7-a -mtune=cortex-a7 -mfpu=vfpv4 -mfloat-abi=softfp LDFLAGS += -Wl,--fix-cortex-a8 #PIE ?= 0 #$(info Using PIE=$(PIE)) #ifeq ($(PIE),1) #CFLAGS += -fPIE #LDFLAGS += -fPIE -pie #BOINC_DIR = ../../_boinc32pie/ #else LDFLAGS += -fno-PIE -no-pie BOINC_DIR = /home/matteo/Software/boinc #endif #TOOLPATH = ../../$(TOOLDIR) CFLAGS = --sysroot=/home/matteo/Software/android-ndk-r21/toolchains/llvm/prebuilt/linux-x86_64/sysroot/ -DANDROID -DDECLARE_TIMEZONE -Ic:"/home/matteo/Software/android-ndk-r21/toolchains/llvm/prebuilt/linux-x86_64/include/c++/4.9.x/" LDFLAGS = --sysroot=/home/matteo/Software/android-ndk-r21/toolchains/llvm/prebuilt/linux-x86_64/sysroot/ CC = /home/matteo/Software/android-ndk-r21/toolchains/llvm/prebuilt/linux-x86_64/bin/clang CXX = /home/matteo/Software/android-ndk-r21/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ #--- vecchio --- #CC ?= gcc #CXX ?= g++ #ARCH += -march=core2 -mtune=core2 -m64 -msse3 -mssse3 #BOINC_DIR ?= ../../.. BOINC_API_DIR ?= $(BOINC_DIR)/api BOINC_LIB_DIR ?= $(BOINC_DIR)/lib BOINC_ZIP_DIR ?= $(BOINC_DIR)/zip BOINC_LIBS ?= $(BOINC_API_DIR)/libboinc_api.a $(BOINC_LIB_DIR)/libboinc.a ifdef BOINC_STUB BOINC_DIR = ../boinc_stub BOINC_LIBS = endif FREETYPE_DIR = /usr/include/freetype2 CPPFLAGS += -I$(BOINC_DIR) -I$(BOINC_LIB_DIR) -I$(BOINC_API_DIR) -I$(BOINC_ZIP_DIR) -I$(FREETYPE_DIR) -Isimd #CFLAGS += -c -O3 $(ARCH) -Wall -Wextra -pedantic -Werror $(VARIANTFLAGS) -MMD -MP #CXXFLAGS += $(CFLAGS) -std=gnu++11 #LDFLAGS += $(ARCH) -L/usr/X11R6/lib -L. LIBS ?= -static-libgcc -static-libstdc++ -pthread -Wl,-Bstatic -lbz2 CXXSOURCES = BoincFile.cpp Graph.cpp boinc_functions.cpp utility.cpp pc.cpp main.cpp CSOURCES = erf.c OBJECTS = $(CXXSOURCES:.cpp=.o) $(CSOURCES:.c=.o) EXECUTABLE = ../bin/pc all: $(EXECUTABLE) $(EXECUTABLE): $(OBJECTS) $(CXX) $(LDFLAGS) $(OBJECTS) -o $@ $(LIBS) $(BOINC_LIBS) .cpp.o: $(CXX) $(CPPFLAGS) $(CXXFLAGS) $< -o $@ .c.o: $(CC) $(CPPFLAGS) $(CFLAGS) $< -o $@ clean: rm -rf ../bin/$(EXECUTABLE) *.o *~ *.d .PHONY: all clean -include $(CXXSOURCES:.cpp=.d) $(CSOURCES:.c=.d)


Unfortunately, this does not work because it misses a "config.h" file needed by "parse.h":
/home/matteo/Software/boinc/lib/parse.h:26:10: fatal error: 'config.h' file not found

This is weird because I am using the official source tree of boinc and it should be error free.
Daniel, do you still have the binary you compiled? Perhaps they are still valuable and we don't have to re-do the work again ;) They are no longer present in the archived you linked in your old post.
27) Message boards : Number crunching : SSE3 optimization and Android binary (Message 1747)
Posted 3 Apr 2020 by manalog
Ok so regarding the SIMD optimization I'll remain stick to the package provided by the server. It's fine as long as I am using my (slow) cpu efficiently.

Regarding Android, I think it is very easy for anyone with a clue on programming. I'm a complete newbie and nonetheless I was close to success only by following the official guide. I compiled the android_tc and and boinc libraries only by copying the commands. The problem was with the final step, that is, compiling "pc". I stopped just because the script provided by Boinc assumes that your app has a configure script, while "pc" has only a script that calls g++ and make and I do not know how to fix this, but just because I am ignorant: I recognize that it just matter of typing the right commands (calling the c++ compiler from the android toolchain) ;)
I can work on that by studying the procedure, but if you want take a look at it before I spend time just learning the basics.

This is the script:
#!/bin/sh set -e # # See: http://boinc.berkeley.edu/trac/wiki/AndroidBuildApp # # Script to compile a generic application on Android export ANDROID_TC="${ANDROID_TC:-$HOME/android-tc}" export ANDROIDTC="${ANDROID_TC_X86:-$ANDROID_TC/x86}" export TCBINARIES="$ANDROIDTC/bin" export TCINCLUDES="$ANDROIDTC/i686-linux-android" export TCSYSROOT="$ANDROIDTC/sysroot" export STDCPPTC="$TCINCLUDES/lib/libstdc++.a" export PATH="$TCBINARIES:$TCINCLUDES/bin:$PATH" export CC=i686-linux-android-gcc export CXX=i686-linux-android-g++ export LD=i686-linux-android-ld export CFLAGS="--sysroot=$TCSYSROOT -DANDROID -Wall -I$TCINCLUDES/include -O3 -fomit-frame-pointer -fPIE" export CXXFLAGS="--sysroot=$TCSYSROOT -DANDROID -Wall -O3 -fomit-frame-pointer -fPIE" export LDFLAGS="-L$TCSYSROOT/usr/lib -L$TCINCLUDES/lib -llog -fPIE -pie" export GDB_CFLAGS="--sysroot=$TCSYSROOT -Wall -g -I$TCINCLUDES/include" make clean if [ -e "./configure" ]; then ./configure --host=i686-linux --prefix="$TCINCLUDES" --libdir="$TCINCLUDES/lib" --disable-shared --enable-static fi make

all the files called by the script are created by other scripts included in the directory.[/code]
28) Message boards : Science : SARS-CoV-2 virus (Message 1744)
Posted 3 Apr 2020 by manalog
This is a very interesting answer, thank you!
29) Message boards : Number crunching : SSE3 optimization and Android binary (Message 1743)
Posted 3 Apr 2020 by manalog
Hi all,
I tried to compile "pc" using SSE3 instruction in order to run it on Core2 processor. The results of the test run do not seem exciting:

WITH SSE3 bin/pc input/tile.txt output/output.txt 0.05 1 393 0 Loading: 0.164 computeStandardDeviations: 0.001 computeCorrelations: 0.350 pcAlgorithm, l 0: 0.013 pcAlgorithm, l 1: 0.698 pcAlgorithm, l 2: 0.349 pcAlgorithm, l 3: 0.046 pcAlgorithm, l 4: 0.015 pcAlgorithm, l 5: 0.004 pcAlgorithm, l 6: 0.001 pcAlgorithm, l 7: 0.000 pcAlgorithm, l 8: 0.000 I file output/output.txt e output/ref_output.txt sono identici WITHOUT SSE3 bin/pc input/tile.txt output/output.txt 0.05 1 393 0 Loading: 0.167 computeStandardDeviations: 0.001 computeCorrelations: 0.374 pcAlgorithm, l 0: 0.013 pcAlgorithm, l 1: 0.691 pcAlgorithm, l 2: 0.355 pcAlgorithm, l 3: 0.048 pcAlgorithm, l 4: 0.015 pcAlgorithm, l 5: 0.004 pcAlgorithm, l 6: 0.001 pcAlgorithm, l 7: 0.000 pcAlgorithm, l 8: 0.000 I file output/output.txt e output/ref_output.txt sono identici WITHOUT SSE3 bin/pc input/tile2.txt output/output2.txt 0.05 1 2470 0 Loading: 0.354 computeStandardDeviations: 0.001 computeCorrelations: 0.083 pcAlgorithm, l 0: 0.001 pcAlgorithm, l 1: 0.026 pcAlgorithm, l 2: 0.440 pcAlgorithm, l 3: 3.057 pcAlgorithm, l 4: 6.627 pcAlgorithm, l 5: 7.104 pcAlgorithm, l 6: 5.675 pcAlgorithm, l 7: 3.771 pcAlgorithm, l 8: 3.020 pcAlgorithm, l 9: 1.796 pcAlgorithm, l 10: 1.053 pcAlgorithm, l 11: 0.550 pcAlgorithm, l 12: 0.270 pcAlgorithm, l 13: 0.098 pcAlgorithm, l 14: 0.029 pcAlgorithm, l 15: 0.006 pcAlgorithm, l 16: 0.001 pcAlgorithm, l 17: 0.000 pcAlgorithm, l 18: 0.000 I file output/output2.txt e output/ref_output2.txt sono identici WITH SSE3: bin/pc input/tile2.txt output/output2.txt 0.05 1 2470 0 Loading: 0.229 computeStandardDeviations: 0.001 computeCorrelations: 0.086 pcAlgorithm, l 0: 0.001 pcAlgorithm, l 1: 0.027 pcAlgorithm, l 2: 0.445 pcAlgorithm, l 3: 3.089 pcAlgorithm, l 4: 6.959 pcAlgorithm, l 5: 7.226 pcAlgorithm, l 6: 5.636 pcAlgorithm, l 7: 3.744 pcAlgorithm, l 8: 2.985 pcAlgorithm, l 9: 1.796 pcAlgorithm, l 10: 1.055 pcAlgorithm, l 11: 0.556 pcAlgorithm, l 12: 0.272 pcAlgorithm, l 13: 0.104 pcAlgorithm, l 14: 0.031 pcAlgorithm, l 15: 0.007 pcAlgorithm, l 16: 0.001 pcAlgorithm, l 17: 0.000 pcAlgorithm, l 18: 0.000 I file output/output2.txt e output/ref_output2.txt sono identici


Actually, it looks that the version of pc provided by Tn-grid, although it only supports SSE2, runs like the version I compiled for SSE3 using
-march=core2 -mtune=core2 -m64 -msse3 -mssse3
. Should I leave the idea to optimize "pc" for SSE3 or there is some option I can add to achieve some tangible improvement?

I take the occasion to ask someone more experienced than me if it is easy to compile pc for Android-x86_64 and Android-arm. I would like to do it and of course I would give the binary to anyone if I succeed. I compiled the android toolchain from the boinc package but then I do not know in which way should I modify the "make" file in the pc-boinc source to point to the android libraries and compiler instead of the standard g++ compiler. Sorry for my confusion but I am not a programmer, I just wanted to make a tentative in order to crunch Tn-grid's WUs on Android devices too. Considered that it looks like a very easy task for someone who know how to do it: is there any volunteer who wants to compile tn-grid for Android instead of me? Or perhaps suggesting me the needed steps? I think it could be of great value for the whole community!
30) Message boards : Science : SARS-CoV-2 virus (Message 1740)
Posted 3 Apr 2020 by manalog
This is really a great news!
Nonetheless it makes me raise a question... As far as I understood of this project (the science behind is a bit difficult for the non-scientists) I know that one of your main goal is to publish the "OneGeneE" database, where you are going to provide to the researchers with all the gene networks expansions we are computing.
Now, I assume that you are going to publish this database after the computation of all the queued genes for the Homo Sapiens research. This, according to the "science status" page, will require 3,37 years from now. This can be ok if we consider a "normal" basic research with a large possible timespan. Things are different if we are talking about knowing more of the pandemic that is struggling the world now: it is evident that science needs all the results as soon as possible, in terms of months.
So I was wondering, could it be possible that you publish the OneGeneE database just after we finish the computation of the SARS-CoV-2 related genes? In this way researches from all over the world could benefit immediately from the great job you do in Trento and perhaps speeding up the search for a cure. After all, at the actual pace, the computation on the 1242 genes you inserted would require only 24 days!
Is this possible? Or must the computation go through other steps before the publication? In particular I've read somewhere on this site about another software you have to run after boinc's results plus lab tests that of course require time and work of human beings. Is this the case also for the publication of the database?
Thank you for answering my doubts and thank you for your job.
31) Message boards : Number crunching : Optimization (Message 684)
Posted 23 Dec 2016 by manalog
I tried SSE2 optimized app on my Xeon L5420 running linux and times are passed from 8500s to 4500s! It's really impressive, thank you for your work.
32) Message boards : Science : OneGenE experiments (Message 550)
Posted 9 May 2016 by manalog
Great!
Thank you for this update, I'm very interested in the purpose of the project.

So you are computing models of expansion of local gene networks: do you still need to modulate computing power to laboratory needs or this phase does need only huge computing power?

I suggest you to put in the "server status" page the status of the research, maybe putting the decreasing number of gene still to expand, I think is very useful to sprone users to contribute.

Have luck, I will continue my support.
33) Message boards : News : gene@home: Scientific Results (June 2015) (Message 548)
Posted 25 Mar 2016 by manalog
Hi, any news from the research?


Previous 20

Main page · Your account · Message boards


Copyright © 2024 CNR-TN & UniTN