[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Reply to: [list | sender only]
RE: CIF development strategies
- Subject: RE: CIF development strategies
- From: "Bollinger, John Clayton" <jobollin@xxxxxxxxxxx>
- Date: Fri, 5 May 2000 23:04:14 +0100 (BST)
Deal All, > > Like PLATON, SHORTEP places a few restrictions on the order of items > > in the CIF -- specifically that the atom type symbols come before > > the atoms and that the atoms come before the thermal > parameters or in > > the same loop with them. These restrictions permit SHORTEP to read > > and process a CIF in one pass, without storing any unnecessary data > > in memory or scratch space. The approach does not require > the overhead > > of a large (albeit rigorous) API like CIFtbx, yet is still > flexible and > > extensible. > > Do you suffer a real performance hit by hooking in CIFtbx routines to > reorder your input data? I'm just curious, because it seems a pity to > impose order dependence - the application is then unable to read any > arbitrary CIF. To my mind that need not be considered as completely > devaluing the application; on a Unix box it's easy enough to knock up > a script using a standalone utility (such as the great-grandaddy > of them all, QUASAR) to pre-order your input. Nevertheless, it does > seem to hobble it a bit. > > Is there a need for a lightweight subroutine library to input data in > a specific order? Is that achievable in Fortran in any more > efficient way > than CIFtbx? I have not conducted a performance experiment to evaluate the relative merit -- by that metric -- of CIFtbx vs. my custom code. I would expect my code to do better, simply because it has less overhead, but the difference might not enough to be significant. Performance is not the driving factor, however. I am more concerned with the size and complexity of the source code, with the resource demands of the object code, and with having access to and familiarity with the details of the engine. I could remove all order dependencies from my own code by providing for taking multiple passes through the CIF; I did not do so because the program already handles all the cases we ever encounter. It is simpler and easier to document the restrictions and handle the oddball case specially if it ever comes up. As for the lightweight subroutine library, I'm not sure how light you can go while still efficiently providing the features you propose. Lighter than the input side of CIFtbx, I suppose, but I'm not sure how much lighter. I don't think it is a critical target. John Bollinger Indiana University Molecular Structure Center jobollin@indiana.edu
Reply to: [list | sender only]
- Prev by Date: Re: CIF development strategies
- Next by Date: CIF development
- Prev by thread: Re: CIF development strategies
- Next by thread: Re: CIF development strategies
- Index(es):