CmDock source code

Message boards : News : CmDock source code
Message board moderation

To post messages, you must log in.

AuthorMessage
Profile Natalia
Volunteer moderator
Project administrator
Project developer
Project scientist

Send message
Joined: 9 Oct 20
Posts: 181
Credit: 2,673,228
RAC: 1,360
Message 360 - Posted: 29 Dec 2020, 8:48:13 UTC

Hi everyone,

here is the CmDock source code repository: https://gitlab.com/Jukic/cmdock.
This is the main application that we use in the project. Now you can try and build it for your own platforms!

We have many plans and invite C++ devs, especially ones with CUDA and parallel computing knowledge to join our project.
If you would like to join, please contact Marko: jukic (dot) marko (at) gmail (dot) com.

With best wishes,
Natalia
ID: 360 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
[VENETO] boboviz

Send message
Joined: 25 Oct 20
Posts: 17
Credit: 225,112
RAC: 0
Message 363 - Posted: 29 Dec 2020, 19:22:07 UTC - in response to Message 360.  

Hi everyone,
here is the CmDock source code repository: https://gitlab.com/Jukic/cmdock.
This is the main application that we use in the project. Now you can try and build it for your own platforms!

Great!!!!

We have many plans and invite C++ devs, especially ones with CUDA and parallel computing knowledge to join our project.

Why not OpenCl??
ID: 363 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile Natalia
Volunteer moderator
Project administrator
Project developer
Project scientist

Send message
Joined: 9 Oct 20
Posts: 181
Credit: 2,673,228
RAC: 1,360
Message 377 - Posted: 1 Jan 2021, 9:47:02 UTC - in response to Message 363.  

OpenCL is a great idea! If you know it and want to help with it, please contact us!
ID: 377 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
[VENETO] boboviz

Send message
Joined: 25 Oct 20
Posts: 17
Credit: 225,112
RAC: 0
Message 394 - Posted: 10 Jan 2021, 12:53:15 UTC - in response to Message 377.  

ID: 394 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Wilfred
Avatar

Send message
Joined: 11 Jan 21
Posts: 2
Credit: 18
RAC: 0
Message 396 - Posted: 11 Jan 2021, 6:24:04 UTC

How can I install the new client without much effort? and is it doing better with the GPU than BOINC?
ID: 396 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Crtomir
Volunteer moderator
Project developer
Project scientist

Send message
Joined: 11 Nov 20
Posts: 47
Credit: 83,493
RAC: 0
Message 398 - Posted: 11 Jan 2021, 10:17:48 UTC - in response to Message 396.  

GPU version of CMDOCK is currently not available. We will start to work on GPU version very soon ;-)

If you have experience on GPU programming and you would like to contribute to the project just drop

an email to jukic dot marko @ gmail dot com
ID: 398 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Wilfred
Avatar

Send message
Joined: 11 Jan 21
Posts: 2
Credit: 18
RAC: 0
Message 400 - Posted: 11 Jan 2021, 14:54:01 UTC - in response to Message 398.  
Last modified: 11 Jan 2021, 14:54:21 UTC

Ok, well, thanks for the great work
ID: 400 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Aurum
Avatar

Send message
Joined: 13 Jan 21
Posts: 76
Credit: 38,789,060
RAC: 0
Message 413 - Posted: 16 Jan 2021, 13:23:04 UTC

I intend to compile cmdock for AVX-512 provided that I can teach myself how to do it. Do you recommend a good site for learning to compile for Ubuntu???
ID: 413 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Aurum
Avatar

Send message
Joined: 13 Jan 21
Posts: 76
Credit: 38,789,060
RAC: 0
Message 414 - Posted: 16 Jan 2021, 14:45:12 UTC
Last modified: 16 Jan 2021, 14:54:53 UTC

Following these instructions https://gitlab.com/Jukic/cmdock/-/blob/master/INSTALL.md
Since this tyro is compiling for the first time this century I'll have lots of naive questions.
1. meson setup <builddir>
My first guess where is: /usr/local/src
2. CC=clang CXX=clang++ meson ... on Linux
It seems odd to specify two languages to compile in. Should I pick just one and which one? E.g., CXX=clang++ meson
3. meson setup <builddir> --buildtype <debug|debugoptimized|release> --prefix </absolute/install/path/>
No guidance given as to which --prefix option to use. This also begs the question from Environment Variables export CMDOCK_ROOT=/path/to/cmdock is --prefix = /path/to/cmdock ???

Looking ahead to the ultimate objective I will have created a program called e.g. cmdock_AVX512.
Do I just replace cmdock-wrapper_1.1_x86_64-pc-linux-gnu with cmdock_AVX-512???
Will the contents of cmdock-boinc_job_1.1_x86_64-pc-linux-gnu.xml need to be altered???
ID: 414 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
TAC

Send message
Joined: 19 Dec 20
Posts: 1
Credit: 7,347
RAC: 0
Message 861 - Posted: 2 May 2021, 15:30:32 UTC

I started trying to compile this. It seems to have non-free dependencies on software from daylight.com. Is this correct?
ID: 861 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile Natalia
Volunteer moderator
Project administrator
Project developer
Project scientist

Send message
Joined: 9 Oct 20
Posts: 181
Credit: 2,673,228
RAC: 1,360
Message 868 - Posted: 3 May 2021, 7:39:10 UTC - in response to Message 861.  
Last modified: 3 May 2021, 9:53:31 UTC

Hello! We are not aware of such a dependency (could you please point out the file in question?)

Upd.: is it https://gitlab.com/Jukic/cmdock/-/blob/master/meson.build#L158?

This is an optional reference to the modules that can work with SMILES strings.

P.S.: CmDock is a fork of an open-source project which had no non-free dependencies declared. We ourselves did not add anything non-free and will keep the project free always.
ID: 868 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Alan-AlanG7Mc

Send message
Joined: 3 May 23
Posts: 2
Credit: 11,850
RAC: 0
Message 2067 - Posted: 9 May 2023, 16:13:11 UTC

Checkpoints - none?

SiDock does not seem to be doing checkpoints/save-points of its work.

So a BOINC manager shutdown with 'stop running projects' (or perhaps a system crash/reboot) loses >all< work done so far.

Four SiDock work units have gone from just under two days remaining, back to four-plus days, with less than 1% completed.
=
I would prefer to donate to projects who can >complete< work units, despite occasional crashes and shutdown on my end.

Thank you.
ID: 2067 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Brian Nixon

Send message
Joined: 10 Feb 21
Posts: 19
Credit: 4,321,716
RAC: 22,289
Message 2068 - Posted: 9 May 2023, 16:53:33 UTC - in response to Message 2067.  

CmDock does checkpoint (typically every 5–⁠15 minutes), but there are a couple of bugs:

  • On Windows, BOINC doesn’t know about the checkpoints. The issue is discussed in this thread. After a restart, the percentage complete usually recovers after a few minutes, but the previous elapsed CPU time is lost and so the BOINC credit will be lower. The problem has been fixed at source, though the project hasn’t updated its application yet.

  • If a task resumes from a checkpoint but gets restarted before it has saved another checkpoint, it might restart from the beginning or report completion and fail validation. (Mentioned in threads here and here.) The bug has been reported.

ID: 2068 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
kotenok2000
Avatar

Send message
Joined: 7 Nov 20
Posts: 8
Credit: 350,801
RAC: 1,189
Message 2166 - Posted: 4 Jan 2024, 18:43:12 UTC
Last modified: 4 Jan 2024, 19:11:16 UTC

I used
meson setup  --prefix /opt/cmdock-0.2.0 build --buildtype release --optimization=3 -Dcpp_args=' -pipe -march=native  -mtune=native -flto '  -Dc_args=' -pipe -march=native  -mtune=native -flto '

 meson compile -C build -j 8

sudo meson install -C build


app_info.xml
<app_info>
<app>
        <name>cmdock-s</name>
        <user_friendly_name>CurieMarieDock 0.2.0 short tasks</user_friendly_name>
</app>
<app>
        <name>cmdock-l</name>
        <user_friendly_name>CurieMarieDock 0.2.0 long tasks</user_friendly_name>
</app>
<file_info>
        <name>cmdock-s_wrapper_0.2.0</name>
        <sticky/>
        <executable/>
</file_info>
<file_info>
        <name>cmdock-l_wrapper_0.2.0</name>
        <sticky/>
        <executable/>
</file_info>
<file_info>
        <name>cmdock</name>
        <sticky/>
        <executable/>
</file_info>
<file_info>
        <name>cmdock-l_job_0.2.0.xml</name>
        <sticky/>
</file_info>
<file_info>
        <name>cmdock-s_job_0.2.0.xml</name>
        <sticky/>
</file_info>
<file_info>
        <name>docking_out</name>
        <sticky/>
</file_info>

<app_version>
        <app_name>cmdock-s</app_name>
        <version_num>100</version_num>
        <file_ref>
                <file_name>cmdock-s_wrapper_0.2.0</file_name>
                <main_program/>
        </file_ref>
        <file_ref>
                <file_name>cmdock</file_name>
                <open_name>cmdock</open_name>
                <copy_file/>
        </file_ref>
        <file_ref>
                <file_name>cmdock-s_job_0.2.0.xml</file_name>
                <open_name>job.xml</open_name>
                <copy_file/>
        </file_ref>
        <file_ref>
                <file_name>docking_out</file_name>
                <open_name>docking_out</open_name>
                <copy_file/>
        </file_ref>
</app_version>
<app_version>
        <app_name>cmdock-l</app_name>
        <version_num>100</version_num>
        <file_ref>
                <file_name>cmdock-l_wrapper_0.2.0</file_name>
                <main_program/>
        </file_ref>
        <file_ref>
                <file_name>cmdock</file_name>
                <open_name>cmdock</open_name>
                <copy_file/>
        </file_ref>
        <file_ref>
                <file_name>cmdock-l_job_0.2.0.xml</file_name>
                <open_name>job.xml</open_name>
                <copy_file/>
        </file_ref>
        <file_ref>
                <file_name>docking_out</file_name>
                <open_name>docking_out</open_name>
                <copy_file/>
        </file_ref>
</app_version>
</app_info>

cmdock-s_job_0.2.0.xml
<job_desc>
        <task>
                <application>cmdock</application>
                <stdout_filename>docking_log</stdout_filename>
                <command_line>-c -j 1 -b 1  -r target.prm -p "/opt/cmdock-0.2.0/data/scripts/dock.prm" -f htvs.ptc -i ligands.sdf -o docking_out</command_line>
                <checkpoint_filename>docking_out.chk</checkpoint_filename>
                <fraction_done_filename>docking_out.progress</fraction_done_filename>
                <setenv>CMDOCK_ROOT=/opt/cmdock-0.2.0/</setenv>
                <setenv>LD_LIBRARY_PATH=/opt/cmdock-0.2.0/lib:$LD_LIBRARY_PATH</setenv>
                <setenv>PERL5LIB=/opt/cmdock-0.2.0/lib:$PERL5LIB</setenv>
        </task>
        <unzip_input>
                <zipfilename>ligands.zip</zipfilename>
        </unzip_input>
</job_desc>

cmdock-l_job_0.2.0.xml

<job_desc>
    <task>
        <application>cmdock</application>
        <stdout_filename>docking_log</stdout_filename>
        <command_line>-c -j 1 -b 1  -r target.prm -p "/opt/cmdock-0.2.0/data/scripts/dock.prm" -f htvs.ptc -i ligands.sdf -o docking_out</command_line>
        <checkpoint_filename>docking_out.chk</checkpoint_filename>
        <fraction_done_filename>docking_out.progress</fraction_done_filename>
        <setenv>CMDOCK_ROOT=/opt/cmdock-0.2.0/</setenv>
        <setenv>LD_LIBRARY_PATH=/opt/cmdock-0.2.0/lib:$LD_LIBRARY_PATH</setenv>
        <setenv>PERL5LIB=/opt/cmdock-0.2.0/lib:$PERL5LIB</setenv>
    </task>
    <unzip_input>
        <zipfilename>ligands.zip</zipfilename>
    </unzip_input>
</job_desc>

Then i created symlink with
ln -s /opt/cmdock-0.2.0/bin/cmdock cmdock

and created empty file with
touch docking_out


Also downloaded boinc wrapper from https://boinc.berkeley.edu/dl/wrapper_26014_x86_64-pc-linux-gnu.zip
extracted, copied and renamed to cmdock-s_wrapper_0.2.0 and cmdock-l_wrapper_0.2.0
ID: 2166 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
WuJJ

Send message
Joined: 6 Jan 24
Posts: 3
Credit: 5,090,168
RAC: 36,663
Message 2169 - Posted: 6 Jan 2024, 19:02:03 UTC
Last modified: 6 Jan 2024, 19:32:26 UTC

I'm inclined to try building my own binary, but I realized even my newly signed up hosts get tasks of quorum 1. That's probably not a great idea in general when the reliability and correctness of a host is unproven. I remember BOINC has some option to turn on additional validation until a host is proven to generate reliable results.

Would I get additional validation if I switch to anonymous platform? The last thing I want is accidentally generating bogus results because of some compiler difference. Or would `-Dtests=true` be enough confidence that my compiled binaries are correct?

When I tried to compile on Ubuntu 23.10, I've already had to make one change.

$ git diff
diff --git a/src/lib/Rbt.cxx b/src/lib/Rbt.cxx
index e953312..7cf5bb2 100644
--- a/src/lib/Rbt.cxx
+++ b/src/lib/Rbt.cxx
@@ -14,6 +14,7 @@

 #include <algorithm> //For sort
 #include <climits>   //For PATH_MAX
+#include <cstdint>   //For uint64_t
 #include <cstdlib>   //For getenv
 #include <ctime>     //For time functions
 #include <dirent.h>  //For directory handling
@@ -581,4 +582,4 @@ bool Rbt::endsWith (std::string const &fullString, std::string const &ending) {
     } else {
         return false;
     }
-}
\ No newline at end of file
+}


Also thanks to @kotenok2000. I haven't got to the anonymous platform part yet, but your comment will likely make that far easier for me. :-D
ID: 2169 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote

Message boards : News : CmDock source code

©2024 SiDock@home Team