lib4neuro issueshttps://code.it4i.cz/moldyn/lib4neuro/-/issues2019-03-30T13:06:12+01:00https://code.it4i.cz/moldyn/lib4neuro/-/issues/9Upload a new release v2019.3.12019-03-30T13:06:12+01:00Martin BesedaUpload a new release v2019.3.1### Summary
Upload a new release v2019.3.1.### Summary
Upload a new release v2019.3.1.First stable version + Simulator finishedhttps://code.it4i.cz/moldyn/lib4neuro/-/issues/3Fortran API2019-03-21T14:13:17+01:00Martin MrovecFortran APICreate first version of the Fortran (binding) API. With respect to C++ API, i.e.
- DataSet
- NeuralNetwork
- NeuralNetworkSum (?)
- NeuronConstant, NeuronBinary, NeuronLogistic, NeuronLinear
- ParticleSwarm
- MSE
- ErrorSum
- DES...Create first version of the Fortran (binding) API. With respect to C++ API, i.e.
- DataSet
- NeuralNetwork
- NeuralNetworkSum (?)
- NeuronConstant, NeuronBinary, NeuronLogistic, NeuronLinear
- ParticleSwarm
- MSE
- ErrorSum
- DESolver
- MultiIndexMartin MrovecMartin Mrovechttps://code.it4i.cz/moldyn/lib4neuro/-/issues/1TODO2019-03-06T19:30:25+01:00Martin BesedaTODO### Compilation & CI & CD
1. [x] Download and compile external dependencies using `FetchContent` CMake functions instead of separate Bash/Batch scripts
1. [ ] Finish all compilation possibilities AND make specific CI tests for them to be...### Compilation & CI & CD
1. [x] Download and compile external dependencies using `FetchContent` CMake functions instead of separate Bash/Batch scripts
1. [ ] Finish all compilation possibilities AND make specific CI tests for them to be run in a special branch `compilation-test`
1. [ ] Ubuntu + dependencies stored in "atypical" paths (e.g. paths set by variables) + statically linked dependencies
1. [ ] Ubuntu + dependencies stored in "atypical" paths (e.g. paths set by variables) + dynamically linked dependencies
1. [ ] Windows + locally stored dependencies + dynamically linked dependencies
1. [ ] Windows + dependencies stored in system paths + statically linked dependencies
1. [ ] Windows + dependencies stored in system paths + dynamically linked dependencies
1. [ ] Windows + dependencies stored in "atypical" paths (e.g. paths set by variables) + statically linked dependencies
1. [ ] Windows + dependencies stored in "atypical" paths (e.g. paths set by variables) + dynamically linked dependencies
1. [ ] Intel compiler support both on Linux and Windows
1. [ ] MinGW support on Windows
1. [ ] Maybe Fedora support?
1. [x] Ubuntu + locally stored dependencies + statically linked dependencies
1. [x] Ubuntu + locally stored dependencies + dynamically linked dependencies
1. [x] Ubuntu + dependencies stored in system paths + dynamically linked dependencies
1. [x] Windows + locally stored dependencies + statically linked dependencies
1. [ ] Utilize Continuous Deployment
1. [ ] Write an interactive compiler, so users won't have to launch different build scripts manually
1. [ ] Extend unit-test to create a test hierarchy covering not only basic method checking but also the higher functionality (problem-solving)
1. [ ] Document all the test in the Doxygen comments using `@test`
1. [x] Start using mock objects and abstract interfaces
1. [x] Choose a proper mock framework - free, thread-safe, compatible with Boost
1. [ ] Implement code-coverage analysis for Ubuntu CI
1. [ ] Utilize `ctest` for running unit-tests
1. [x] Rewrite compilation, so that examples are dependent only on lib4neuro (and native) libraries and headers
---
### Non-distributed version
1. [ ] Rewrite code using smart pointers to prevent memory leaks
2. [ ] Rewrite tutorial for the current version of compilation scripts
2. [ ] Write a brief user tutorial (README / web?)
3. [ ] Write complete Doxygen documentation (including documentation of unit-tests for every class/functionality)
4. [x] Implement gradient descent training method
1. [x] Implement method itself
1. [x] Implement stochastic version
2. [x] Implement the combined training method interface (to be able to use swarm and BP in turns etc.)
1. [x] Implement Levenberg-Marquardt method
1. [] Implement Principal Component Analysis (using Armadillo)
5. [x] Write "user header" to hide internal classes and functions from users
1. [x] Encapsulate the "user interface" to a namespace, so its functions can't be confused with others with the same names
1. [x] Hide non-API functionality by PImpl - MUST BE CHECKED if the resulting overhead isn't too large!
6. [ ] Write user Fortran API
7. [ ] Write interface for PES representations
9. [ ] Profile the whole library to identify bottle-necks, inefficient vectorization, and threading and optimize it accordingly.
10. [ ] Write interface (API / GUI?) for Glass Service
1. [ ] Develop a method to detect insignificant edges (Wald test?)
---
### Shared-memory-parallel version
1. [ ] Design shared-memory parallel model of the library for CPUs (OpenMP + vectorization)
1. [ ] Implement parallel version
1. [ ] Utilization of GPUs and FPGAs using OpenACC
---
### Distributed version
1. [ ] Design distributed parallel model of the library (MPI)
2. [ ] Implement distributed version
3. [ ] Dash integration etc.