lib4neuro issueshttps://code.it4i.cz/moldyn/lib4neuro/-/issues2019-10-09T17:18:14+02:00https://code.it4i.cz/moldyn/lib4neuro/-/issues/39Add Optimization Benchmarks2019-10-09T17:18:14+02:00Martin BesedaAdd Optimization Benchmarks### Summary
Add Optimization Benchmarks
https://en.wikipedia.org/wiki/Test_functions_for_optimization### Summary
Add Optimization Benchmarks
https://en.wikipedia.org/wiki/Test_functions_for_optimizationhttps://code.it4i.cz/moldyn/lib4neuro/-/issues/38Implement particle initialization by Centroidal Voronoi Tesselation2019-10-09T17:06:06+02:00Martin BesedaImplement particle initialization by Centroidal Voronoi Tesselation### Summary
Implement particle initialization by Centroidal Voronoi Tesselation### Summary
Implement particle initialization by Centroidal Voronoi Tesselationhttps://code.it4i.cz/moldyn/lib4neuro/-/issues/36Rewrite lib4neuro structure to make network parameters local for separate thr...2019-10-09T12:04:34+02:00Martin BesedaRewrite lib4neuro structure to make network parameters local for separate threads### Summary
Rewrite lib4neuro structure to make network parameters local for separate threads### Summary
Rewrite lib4neuro structure to make network parameters local for separate threadshttps://code.it4i.cz/moldyn/lib4neuro/-/issues/35Particle Swarm Implementation2019-10-09T10:28:53+02:00Martin BesedaParticle Swarm Implementation### Summary
* [ ] Dynamic inertia change
* [ ] Craziness operator
* [ ] OpenMP parallelization
* [ ] MPI asynchronous parallelization### Summary
* [ ] Dynamic inertia change
* [ ] Craziness operator
* [ ] OpenMP parallelization
* [ ] MPI asynchronous parallelizationhttps://code.it4i.cz/moldyn/lib4neuro/-/issues/32Add DataSet constructor with generated values in Chebyshev nodes2019-04-17T02:30:15+02:00Martin BesedaAdd DataSet constructor with generated values in Chebyshev nodes### Summary
Add DataSet constructor with generated values in Chebyshev nodes to prever Runge's phenomenon.### Summary
Add DataSet constructor with generated values in Chebyshev nodes to prever Runge's phenomenon.https://code.it4i.cz/moldyn/lib4neuro/-/issues/31Add Periodic table of the Elements2019-04-17T02:12:09+02:00Martin BesedaAdd Periodic table of the Elements### Summary
Add Periodic table of the Elements. Probably from http://www.data-explorer.com/data .### Summary
Add Periodic table of the Elements. Probably from http://www.data-explorer.com/data .https://code.it4i.cz/moldyn/lib4neuro/-/issues/30Add Gnuplot2019-04-17T02:11:21+02:00Martin BesedaAdd Gnuplot### Summary
Add Gnuplot as an optional dependency.### Summary
Add Gnuplot as an optional dependency.https://code.it4i.cz/moldyn/lib4neuro/-/issues/27Provide a configuration file for find_package() in CONFIG mode2019-03-27T02:42:08+01:00Martin BesedaProvide a configuration file for find_package() in CONFIG mode### Summary
Provide a configuration file for find_package() in CONFIG mode.### Summary
Provide a configuration file for find_package() in CONFIG mode.Martin BesedaMartin Besedahttps://code.it4i.cz/moldyn/lib4neuro/-/issues/26Create CI server and pipeline with Intel compilers & MKL2019-03-25T18:34:56+01:00Martin BesedaCreate CI server and pipeline with Intel compilers & MKL### Summary
Create CI server and pipeline with Intel compilers & MKL### Summary
Create CI server and pipeline with Intel compilers & MKLhttps://code.it4i.cz/moldyn/lib4neuro/-/issues/19Implement Continuous Delivery2019-03-27T02:42:46+01:00Martin BesedaImplement Continuous Delivery### Summary
Implement Continuous Delivery### Summary
Implement Continuous Deliveryhttps://code.it4i.cz/moldyn/lib4neuro/-/issues/18Finish test implementation for v2019.3.1 completely2019-03-29T18:19:05+01:00Martin BesedaFinish test implementation for v2019.3.1 completely### Summary
Finish test implementation for v2019.3.1 completely.
* [ ] Unit tests
* [ ] Integration tests
* [ ] Validation tests### Summary
Finish test implementation for v2019.3.1 completely.
* [ ] Unit tests
* [ ] Integration tests
* [ ] Validation testshttps://code.it4i.cz/moldyn/lib4neuro/-/issues/17Write Doxygen documentation for v2019.3.12019-03-29T18:19:18+01:00Martin BesedaWrite Doxygen documentation for v2019.3.1### Summary
Write Doxygen documentation for v2019.3.1### Summary
Write Doxygen documentation for v2019.3.1https://code.it4i.cz/moldyn/lib4neuro/-/issues/16Write User documentation into the project Wiki2019-03-23T14:31:44+01:00Martin BesedaWrite User documentation into the project Wiki### Summary
Write User documentation into the project Wiki for v1.0.0.### Summary
Write User documentation into the project Wiki for v1.0.0.https://code.it4i.cz/moldyn/lib4neuro/-/issues/15Parallelize the code with MPI / Dash2019-03-23T14:25:42+01:00Martin BesedaParallelize the code with MPI / Dash### Summary
Parallelize the code with MPI / Dash### Summary
Parallelize the code with MPI / Dashhttps://code.it4i.cz/moldyn/lib4neuro/-/issues/14Parallelize the code with OpenMP2019-03-23T14:25:06+01:00Martin BesedaParallelize the code with OpenMP### Summary
Parallelize the code with OpenMP### Summary
Parallelize the code with OpenMPhttps://code.it4i.cz/moldyn/lib4neuro/-/issues/13Parallelize the code with OpenACC2019-03-23T14:24:29+01:00Martin BesedaParallelize the code with OpenACC### Summary
Parallelize the code with OpenACC### Summary
Parallelize the code with OpenACChttps://code.it4i.cz/moldyn/lib4neuro/-/issues/12Implementation of PCA2019-03-27T02:43:52+01:00Martin BesedaImplementation of PCASummary
Implement Principal Component Analysis to be able to reduce a dimensionality of a problem. Use [princomp()](http://arma.sourceforge.net/docs.html#princomp) function from Armadillo.Summary
Implement Principal Component Analysis to be able to reduce a dimensionality of a problem. Use [princomp()](http://arma.sourceforge.net/docs.html#princomp) function from Armadillo.https://code.it4i.cz/moldyn/lib4neuro/-/issues/11Improve Boost download to make in build "on demand" during runtime, not durin...2019-03-23T14:02:00+01:00Martin BesedaImprove Boost download to make in build "on demand" during runtime, not during configuration phaseSummary
Improve Boost download to make in build "on demand" during runtime, not during configuration phase. Probably using [add_custom_command()](https://cmake.org/cmake/help/v3.14/command/add_custom_command.html).Summary
Improve Boost download to make in build "on demand" during runtime, not during configuration phase. Probably using [add_custom_command()](https://cmake.org/cmake/help/v3.14/command/add_custom_command.html).https://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.