Hello Nicholas

Thanks for your feedback, this is much appreciated :-). The OpenSearch GitHub issue was an interesting read, and I'm glad to see that the "move to Gradle, then add module-info, then choose carefully what to export" path is working for Lucene too.

Yes I'm very interested in Panama and vectorization as well. A goal of doing JPMS first is indeed to prepare the code base for those further developments. Panama could be used for providing access to the GDAL library as a DataStore. Vectorization can be used for accelerating coordinate operations (e.g. map projections). Actually Apache SIS is particularly well suited to vectorization of coordinate operations because of a design choice made about 10 years ago, where the mathematics of map projections have been rearranged for delegating as much work as possible to matrices. At that time to goal was to allow efficient concatenation of operations (through matrix multiplications), but an unintended (at that time) side-effect is that it makes the code easier to vectorize compared to map projection formulas implemented verbatim from the books.

Before that I need to do the long overdue upgrade of ISO 19111 and EPSG database. But after those upgrades, Panama and vectorization are on my wish list.

    Martin


Le 29/07/2023 à 21:16, Nicholas Knize a écrit :

I've been following the development on this as I've been working for a
while on adding JPMS support to the OpenSearch codebase  (
https://github.com/opensearch-project/opensearch/issues/5910). 💯 support
this effort. FWIW, the same approach was taken on Lucene. For ~1 year Mark
Miller (pretty much single handedly) switched Lucene from ant to gradle
first. Then module-info.java was added to each Lucene module and API
classes carefully exported.

Quick question. Are there corners of the SIS code base that could also
benefit from some of the other JDK JEP improvements (e.g., Valhalla,
Panama)? Perhaps we could explore adding SIMD optimizations through the
java vector incubating API with JDK 20 runtime? I think moving to JPMS and
a gradle build system would make this easier and we could cross breed some
of the MRJAR and Panama API integration work done on Lucene.

Reply via email to