Mercurial > pylearn
diff doc/v2_planning/plugin_greenlet.py @ 1200:acfd5e747a75
v2planning - a few changes to plugin proposals
author | James Bergstra <bergstrj@iro.umontreal.ca> |
---|---|
date | Mon, 20 Sep 2010 11:28:23 -0400 |
parents | a60b3472c4ba |
children |
line wrap: on
line diff
--- a/doc/v2_planning/plugin_greenlet.py Mon Sep 20 02:56:11 2010 -0400 +++ b/doc/v2_planning/plugin_greenlet.py Mon Sep 20 11:28:23 2010 -0400 @@ -1,35 +1,14 @@ -"""plugin_greenlet - draft of library architecture using greenlets""" - - -""" - -- PICKLABLE - algorithms are serializable at all points during execution +"""plugin_greenlet - draft of library architecture using greenlets -- ITERATOR walks through algorithms with fine granularity - -- COMPONENTS - library provides components on which programs operate - -- ALGORITHMS - library provides algorithms in clean (no hooks) form - -- HOOKS - user can insert print / debug logic with search/replace type calls - e.g. prog.find(CALL(cd1_update)).replace_with(SEQ([CALL(cd1_update), CALL(debugfn)])) +HISTORICAL - NOT ACTUALLY A PROPOSAL +==================================== -- PRINTING - user can print the 'program code' of an algorithm built from library pieces - -- MODULAR EXPERIMENTS - an experiment object with one (or more?) programs and all of the objects referred to by - those programs. It is the preferred type of object to be serialized. The main components of - the algorithms should be top-level attributes of the package. This object can be serialized - and loaded in another process to implement job migration. +This was the original approach for what I renamed to plugin_JB, until I realized that I could +get the end result without using greenlets at all. -- OPTIMIZATION - program can be optimized automatically - e.g. BUFFER(N, CALL(dataset.next)) can be replaced if dataset.next implements the right - attribute/protocol for 'bufferable' or something. - - e.g. SEQ([a,b,c,d]) can be compiled with Theano if sub-sequence is compatible - -- don't need greenlets to get efficiency, the implementations of control flow ops can manage a - stack or stack tree in the vm (like greenlets do I think) we don't really need - greenlets/stackless I don't think +Still, greenlets seem like they could be neat and making this program stretched my mind so I +keep it. There's something wrong when you run with the kfold validation, but until that point +I think it works. """