{
  "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/03/23/cdk-module-dependencies-2.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/e7qrk-ypg78",
      "url": "https://chem-bla-ics.linkedchemistry.info/2008/03/23/cdk-module-dependencies-2.html",
      "title": "CDK Module dependencies #2",
      "content_html": "<p>A bit over 2 years ago I published a <a href=\"https://chem-bla-ics.linkedchemistry.info/2005/12/06/uml-diagram-of-cdk-module-dependencies.html\">UML diagram showing the dependencies between CDK modules <i class=\"fa-solid fa-recycle fa-xs\"></i></a>.\nSince then I lot of new modules have been defined, added or factored out from the extra module (click to zoom):</p>\n\n<p><img src=\"/assets/images/cdkdeps.dot.png\" alt=\"\" /></p>\n\n<p>These kind of diagrams help us maintain the library, and apply some design goals, as explained in the first post on this.</p>\n\n<p>If one compares the two diagrams, one sees that fewer code depends on the <code class=\"language-plaintext highlighter-rouge\">data</code> module, but it is also clear that still a\nlot of them do. Another issue that had not properly addressed yet, is that a lot of modules still depend on the <code class=\"language-plaintext highlighter-rouge\">extra</code> module,\nwhich aggregates everything that had not been assigned elsewhere.</p>\n\n<h2 id=\"parallelism\">Parallelism</h2>\n\n<p>This diagram also helped me use the [Ant <parallel> task](http://ant.apache.org/manual/CoreTasks/parallel.html) to allow compiling\nCDK modules in parallel, instead of sequentially. Multicore machines can take advantage of that, and reduce the overall computation\ntime. Full parallelism is not possible, and it is well visualized by the above diagram that there basically 12 sequential\ncompilation steps in which one or more modules can be compiled. Further clean up of the module dependencies, will reduce this\nnumber, and further reduce the computation time on multicore machines.</parallel></p>\n\n<p>Now, graph analysis could pinpoint the most troublesome nodes, but it would not surprise me that extra would be amongst them. But\nthe following items are worth looking at too:</p>\n\n<ul>\n  <li>why does <code class=\"language-plaintext highlighter-rouge\">qsar</code> have to depend on <code class=\"language-plaintext highlighter-rouge\">charges</code>?</li>\n  <li>why does <code class=\"language-plaintext highlighter-rouge\">sdg</code> (the 2D layout code) depends on <code class=\"language-plaintext highlighter-rouge\">io</code> code?</li>\n  <li>can <code class=\"language-plaintext highlighter-rouge\">isomorphism</code> and <code class=\"language-plaintext highlighter-rouge\">formula</code> be made independent of <code class=\"language-plaintext highlighter-rouge\">data</code>?</li>\n  <li>why does <code class=\"language-plaintext highlighter-rouge\">reaction</code> depend on <code class=\"language-plaintext highlighter-rouge\">sdg</code>?</li>\n  <li>why does <code class=\"language-plaintext highlighter-rouge\">forcefield</code> depend on <code class=\"language-plaintext highlighter-rouge\">qsaratomic</code>?</li>\n</ul>\n\n<p>Some of these issues are rather practical, but it is these kind of analyses that help us clean up the CDK library.</p>",
      "summary": "A bit over 2 years ago I published a UML diagram showing the dependencies between CDK modules . Since then I lot of new modules have been defined, added or factored out from the extra module (click to zoom):",
      "image": "https://chem-bla-ics.linkedchemistry.info/assets/images/cdkdeps.dot.png",
      "date_published": "2008-03-23T00:00:00+00:00",
      "date_modified": "2025-07-30T00:00:00+00:00",
      "tags": ["cdk"],
      
      
      
      
      
      
        "authors": [ { "name": "Egon Willighagen", "url": "https://orcid.org/0000-0001-7542-0286" } ]
      
    }

  ]
}
