{
  "version": "https://jsonfeed.org/version/1.1",
  "title": "chem-bla-ics",
  "description": "Chemblaics (pronounced chem-bla-ics) is the science that uses open science and computers to solve problems in chemistry, biochemistry and related fields.",
  "home_page_url": "https://chem-bla-ics.linkedchemistry.info/",
  "feed_url": "https://chem-bla-ics.linkedchemistry.info/2008/11/30/parallel-building-cdk.json",
  "icon": "https://chem-bla-ics.linkedchemistry.info/assets/images/chem-bla-ics_logo.png",
  "language": "en",
  "authors": [
    {
      "name": "Egon Willighagen",
      "url": "https://orcid.org/0000-0001-7542-0286",
      "_orcid": "0000-0001-7542-0286"
    }
  ],
  "items": [

    {
      "id": "https://doi.org/10.59350/kcxg1-z9t12",
      "url": "https://chem-bla-ics.linkedchemistry.info/2008/11/30/parallel-building-cdk.html",
      "title": "Parallel building the CDK",
      "content_html": "<p>Some time ago, I added parallel building targets for <a href=\"http://cdk.sf.net/\">CDK</a>’s <a href=\"http://ant.apache.org/\">Ant</a> <code class=\"language-plaintext highlighter-rouge\">build.xml</code>. Now that I am setting up a\n<a href=\"http://pele.farmbio.uu.se/nightly/\">Nightly</a> for the <a href=\"http://cdk.svn.sourceforge.net/viewvc/cdk/cdk/branches/jchempaint-primary/\">jchempaint-primary</a> branch,\nand really only want to report on the CDK modules <code class=\"language-plaintext highlighter-rouge\">control</code> and <code class=\"language-plaintext highlighter-rouge\">render</code>, I need the build system to use a properties files to define which modules\nshould be compiled.</p>\n\n<p>So, I hacked a bit on the build system, and made use of two <a href=\"http://ant-contrib.sourceforge.net/\">ant-contrib</a> tasks, <code class=\"language-plaintext highlighter-rouge\">if</code> and <code class=\"language-plaintext highlighter-rouge\">foreach</code> which in the first\nplace reduce the size of the <code class=\"language-plaintext highlighter-rouge\">build.xml</code>, but also provide means for parallelization. Earlier, it was using the <code class=\"language-plaintext highlighter-rouge\">parallel</code> task of\nAnt itself for this (see <a href=\"https://chem-bla-ics.linkedchemistry.info/2008/03/23/cdk-module-dependencies-2.html\">CDK Module dependencies #2 <i class=\"fa-solid fa-recycle fa-xs\"></i></a>).</p>\n\n<p>The build dependencies between CDK modules are fairly complex, and typically this complexity increases upon bug fixing etc. Ideally, the build dependencies\nwill be calculated on runtime, instead of being hard-coded right now, and I will explore this in the near future.</p>\n\n<p>These dependencies can be used to build some of the module in parallel, but not all. This causes speed up of the compilation not to scale linearly with the number of\nthreads or cores. The <a href=\"http://spreadsheets.google.com/ccc?key=pdSdCFxXYzmOnssF4qVzwCw&amp;hl=en\">below build times</a> are calculated for three replicates, on a four\ncore machine:</p>\n\n<p><img src=\"/assets/images/buildtimes.png\" alt=\"\" /></p>\n\n<p>Going from one to two threads certainly pays of, but going to 4 shows only a three second speed up. The four processor cores were not utilized 100%,\nso I also attempted 2 threads core, but that showed zero improvement.</p>",
      "summary": "Some time ago, I added parallel building targets for CDK’s Ant build.xml. Now that I am setting up a Nightly for the jchempaint-primary branch, and really only want to report on the CDK modules control and render, I need the build system to use a properties files to define which modules should be compiled.",
      "image": "https://chem-bla-ics.linkedchemistry.info/assets/images/buildtimes.png",
      "date_published": "2008-11-30T00:00:00+00:00",
      "date_modified": "2025-10-11T00:00:00+00:00",
      "tags": ["cdk"],
      
      
      
      
      
      
        "authors": [ { "name": "Egon Willighagen", "url": "https://orcid.org/0000-0001-7542-0286" } ]
      
    }

  ]
}
