Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
bfe [2016/04/05 19:46] zashi [Brainfuck] |
bfe [2016/04/05 19:52] zashi [Framework] |
||
---|---|---|---|
Line 28: | Line 28: | ||
===== Framework ===== | ===== Framework ===== | ||
- | BFE is the framework in it's entirety. The framework (BFE) depends on two executable modules and one Tcl proc. One to test strands and one to evaluate their output. The Tcl proc provides mutations to top-scoring strands. The framework consists of a master script and worker script. The master script mediates access to the database and handles logging. The worker script is run on each computation node, generally one process per available CPU core. | + | BFE is the framework in it's entirety. Previous versions of BFE relied on a master script with a slave running for each core in a cluster. |
+ | |||
+ | The latest incarnation consists a single Tcl script using an interpreter with OpenMPI bindings. A stand-alone executable is used for running the bf code and a C-based Tcl extension provides the 'nmc' command used to score output. | ||
+ | |||
+ | BFE tracks all mutations it generates, but when considering the next generation, it groups by score and picks randomly from the top 2% of this population. In this way, different 'species' are picked rather than the same species of strand overfilling the top ranks. | ||
+ | |||
===== Mutation Algorithm ===== | ===== Mutation Algorithm ===== |