[Guide][Linux] Running SiDock@home tasks for CmDock on anonymous platform

Message boards : Number crunching : [Guide][Linux] Running SiDock@home tasks for CmDock on anonymous platform
Message board moderation

To post messages, you must log in.

AuthorMessage
Profile CyberTailor
Avatar

Send message
Joined: 8 Dec 20
Posts: 5
Credit: 1,036,175
RAC: 2,262
Message 946 - Posted: 22 May 2021, 6:05:03 UTC
Last modified: 22 May 2021, 6:08:07 UTC

If your platform isn't supported by SiDock@home or you don't like precompiled binaries, you can use Anonymous platform.

For Gentoo it's quite simple:
# eselect repository enable guru
# USE=boinc emerge cmdock

If you're not using Gentoo but still want to compile CmDock yourself follow these steps...

  1. Download and unpack CmDock 0.1.2 source code (GitLab link)
  2. Get meson somewhere and run in the sources directory:

    meson setup --prefix /opt/cmdock-0.1.2 build
    meson compile
    meson install
    

  3. Go to project's directory:

    /var/lib/boinc/projects/www.sidock.si_sidock/

  4. Download XML files there
  5. Download and unpack boinc wrapper for your platform or compile it. Place it into project's directory as two files named cmdock-wrapper_0.1.2 and cmdock-boinc-zip_wrapper_0.1.2
  6. Create empty file docking_out.sd
  7. Make sure /opt/cmdock-0.1.2/build/cmdock and all listed below files exist:

    /var/lib/boinc/projects/www.sidock.si_sidock
    ├── app_info.xml
    ├── cmdock-boinc_job_0.1.2.xml
    ├── cmdock-boinc-zip_job_0.1.2.xml
    ├── cmdock-boinc-zip_wrapper_0.1.2
    ├── cmdock-wrapper_0.1.2
    └── docking_out.sd
    

  8. Restart BOINC, make sure it detected anonymous platform and tasks don't fail


Note: I haven't detected any perfomance increase with -march=native optimizations. Maybe there are some with LTO.

ID: 946 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Dirk Broer

Send message
Joined: 16 Nov 20
Posts: 8
Credit: 7,769,159
RAC: 29,066
Message 1171 - Posted: 15 Sep 2021, 19:03:14 UTC

Will this approach in the case of AArch64 (64-bit ARM) prevent the code of cmdock to look for libstdc++.so.6 in the wrong (32-bit) directory?
ID: 1171 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
smoe

Send message
Joined: 25 Dec 20
Posts: 4
Credit: 28,433,647
RAC: 215
Message 1205 - Posted: 18 Sep 2021, 18:50:20 UTC - in response to Message 1171.  

yes
ID: 1205 · 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: 185
Credit: 2,782,517
RAC: 50
Message 1427 - Posted: 28 Dec 2021, 13:45:45 UTC

Note: if you use CmDock v0.1.4 (the latest at the moment), step 6 should read:
6. Create empty file docking_out
ID: 1427 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile CyberTailor
Avatar

Send message
Joined: 8 Dec 20
Posts: 5
Credit: 1,036,175
RAC: 2,262
Message 1656 - Posted: 22 Jun 2022, 19:28:06 UTC - in response to Message 946.  

UPD: As Gentoo files are updated, you need to replace @PREFIX@ in wrapper jobs with an actual path (e.g. /opt/cmdock-0.1.4):

$ sed "s|@PREFIX@|/opt/cmdock-0.1.4|g" -i cmdock-boinc-zcp_job_0.1.4.xml
ID: 1656 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
kotenok2000
Avatar

Send message
Joined: 7 Nov 20
Posts: 23
Credit: 603,688
RAC: 1,985
Message 2164 - Posted: 2 Jan 2024, 18:26:29 UTC - in response to Message 1656.  
Last modified: 2 Jan 2024, 18:33:14 UTC

Replace "meson setup --prefix /opt/cmdock-0.1.2 build" with "meson setup --prefix /opt/cmdock-0.2.0 build"
"meson compile" with "meson compile -C build"
and "meson install" with " sudo meson install -C build"

Then add following in /etc/profile
export CMDOCK_ROOT=/opt/cmdock-0.2.0
export PATH=$CMDOCK_ROOT/bin:$PATH
export LD_LIBRARY_PATH=$CMDOCK_ROOT/lib:$LD_LIBRARY_PATH
export PERL5LIB=$CMDOCK_ROOT/lib:$PERL5LIB
ID: 2164 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
kotenok2000
Avatar

Send message
Joined: 7 Nov 20
Posts: 23
Credit: 603,688
RAC: 1,985
Message 2167 - Posted: 4 Jan 2024, 19:09:58 UTC
Last modified: 4 Jan 2024, 19:14:10 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: 2167 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile dchhbfx
Avatar

Send message
Joined: 12 Feb 24
Posts: 2
Credit: 1,168,294
RAC: 0
Message 2212 - Posted: 29 Feb 2024, 2:20:18 UTC

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

Message boards : Number crunching : [Guide][Linux] Running SiDock@home tasks for CmDock on anonymous platform

©2024 SiDock@home Team