opencog / benchmark Goto Github PK
View Code? Open in Web Editor NEWBenchmarking the AtomSpace, the pattern matcher and other OpenCog systems
License: GNU Affero General Public License v3.0
Benchmarking the AtomSpace, the pattern matcher and other OpenCog systems
License: GNU Affero General Public License v3.0
To follow up the @linas comment: here and to not reinvent the wheel I would propose using some ready C++ benchmarking library.
Requirements to such library:
Google Benchmark (https://github.com/google/benchmark) seems to be a good candidate. Unfortunately there are no ready to install packages for benchmark libraries so it will be additional manual step in building procedure.
Other well known libraries:
Some review and comparision can be found here (full articles are here and here).
Python benchmarks are broken. At the moment all of benchmarks are guarded by #if HAVE_CYTHONX preprocessor condition:
But code cannot be compiled when HAVE_CYTHONX is defined.Scope links are probably the most expensive link types to construct and insert in the AtomSpace. First calculating the hash value during construction is more expensive than for non scope links. Scope links like PatternLink
, BindLink
, etc, are even more expensive to construct so. Then inserting them to the AtomSpace also requires more computation like testing for alpha-equivalence.
query_benchmark
does support scope links but mostly for querying, not construction and insertion...
All that to say that scope links really should be supported by atomspace_bm
(if that doesn't get replaced by something else soon).
A key activity for the atomspace is getting Nodes by name, and Links, by outgoing set. Neither of these are measured.
File make_benchmark_graphs.py is part of opencog/benchmark/atomspace/atomspace benchmarkin.
Todo:
The current atomspace benchmark only measures node and link creation, and not 'typical' data. resulting in real-life performance that is one or two orders of magnitude worse than what's measured. See for example: opencog/test-datasets#7
The benchmark needs to be updated to measure more 'typical' data.
One key activity is getting Nodes by name, and Links by outgoing set. This is not measured currently, it should be.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.