What's New
Home Up

 

GP Studio - What's New

What's New (5/9/2007)

This update covers a broad range of updates, with the primary focus on improving the user experience through performance improvements, along with continued refinements to the user interface. The biggest new user interface feature is that the custom fitness is computed verses any data set in the tabular results view. This means you now see both the custom fitness for the data, along with the standard raw fitness values. I've also been trying to improve the presentation of the numerical values throughout the application, this will be obvious. Much focus has been placed on improving the code implementation, with particular focus on trying to find areas for optimization. The biggest speed improvement is in how quickly data sets are loaded from the database, other small improvements have been made throughout.

bulletCustom fitness function is computed in the tabular results
bulletBatch modeling interface improved, added the ability to re-order queued models.
bulletImproved source code results interface. If you are a current user of the software, note that the user interface for selecting the source code has changed, the selection option is now a drop-down menu choice in the status bar.
bulletFaster display of programs in the results view. Creating of the function set is delayed until the results from a program are requested.
bulletVisual appearance for numeric results improved
bulletReduced network traffic for on-demand project results computations
bulletImproved multi-core utilization, much better scaling with more than 2 processors
bulletSignificantly improved the performance of reading data sets from the database, also improved reading from the database throughout the user interface.
bulletMany other code improvements, including small memory and performance optimizations
bulletSignificant update to the technical documentation for source code licensee's

What's Next

I'll be turning my attention to development of a major upgrade, which will lead to a fundamentally new capability, the ability to do what I call “design.” A simple example would be the ability to develop an AI that could play checkers or chess. The software will be able to run an external program to compute the fitness for each candidate program. This will finally move the software in the intended long-term direction I have in mind.

The first step, I'm considering making available, is an SDK of some kind that would allow the ability to write your own client programs that use the GPServer genetic programming engine. If this is of interest, please let me know so I can evaluate the level of interest in this capability.

In addition to the major upgrade, there are a handful of application updates I'll be making to the 2.X branch of the GP Studio application.

April 12, 2007 - Improved Input History & Terminal Functions

A couple of modest updates are included with this update. The two biggest features are the ability to write functions and specify that its parameters must be terminals and providing the parameter input history to custom fitness functions. The first gives a kind-of genetic algorithm capability; certain classes of user defined functions benefit from the capability. The input history allows custom fitness functions to have richer capability, no longer relying only upon observed predictions to compute fitness.

bullet

Define a function to accept only terminal parameters

bullet

The Input History data is available as a parameter to custom fitness functions

bullet

UI improvements to support the exporting of tabular data and source code

bullet

Removed the .NET 2.0 runtime check from the installer

bullet

Various other minor code updates

March 14, 2007 - Batch Processing

Batch processing is now available! The modeling interface now allows a model to be placed into a batch processing queue, enabling the user to set up any number of different simulations to be run as the computer (or distributed network) is able to move through each queued simulation. This means you no longer have to be sitting at the computer to wait for one model to complete before beginning the next, the batch processing manager works through each model in sequence, allowing unattended modeling to take place.

bullet

Batch Processing

bullet

User Guide updated to reflect this new batch processing capability

bullet

User Guide updated to reflect the ability to import semi-colon separated data

bullet

Various minor user interface tweaks and internal code improvements

February 1, 2007 - Multi-Objective Program Code Reduction

A significant new feature to help reduce program size has been added! It is known as Multi-Objective fitness. In simple terms, it means that GP Studio can be, optionally, directed to consider the size of a program/model as part of the overall fitness, giving preference to smaller programs. This is an extremely important new feature for the software in four respects...

bulletSmaller programs can be generated.
bulletSmaller programs tend to have fewer problems with over fitting data.
bulletThe modeling process can be faster, because less code is being evaluated during the simulation.
bulletFor source code licenses it means that any number of measures of fitness can be considered, true multi-objective model creating is provided.

This is a powerful new addition to the software, please review Chapter 10 of the User Guide for details regarding the Multi-Objective option.   Select this link to see the additions to Chapter 10 that discuss the Multi-Objective program reduction feature.

December 28, 2006 - Multi-Processor, Multi-Core, Hyper-Threading Support

A final update for 2006! Support for hyper-threading, multi-processors and multi-core processors has been added. This capability allows the genetic programming engine to allocate computing tasks to each processor (of any type) on the computer to further maximize system utilization during the simulation.

bulletMulti-Processing (on a single computer) support
bulletFixed an Indexed Memory bug introduced in version 2.0
bulletModified the "lease" time and technique associated with distributed computing

December 20, 2006 - Improved Network Communication

This release significantly improves the communication that takes place between generations when utilizing distributed computing.  The network communication has been reduced by a factor of 2, additionally, the transfer between computers takes place in parallel, rather than being controlled by a master computer.  The result is the population update between generations is 5 to 10 times faster and scales well with more and more distributed computing resources.

bullet

Improved network communication between generations

bullet

Improved network scalability

bullet

Time Series data import bug fixed

bullet

Delete data set from database bug fixed

December 9, 2006 - Distributed Computing!

A major version upgrade is released, this version upgrade provides the ability to utilize distributed computing for the modeling! This allows you to harness multiple computers to work in parallel and thereby, improve the speed of the modeling. Additionally, the underlying engine architecture has been further improved, not only to support the new distributed computing features, but also in preparation for exciting new features that will become available in the near future.  Select this link to see the new chapter of the user guide that discusses distributed computing.

This software update is 100% backwards compatible with your existing projects! Back up your existing project database(s), then uninstall your current GP Studio application, install the updated version and re-apply your current license file, then restore you database to the application directory.

bulletDistributed Computing!
bulletSignificant engine architecture update. This doesn't result directly in any new end user features, but prepares for upcoming enhancements.
bulletVarious minor memory and speed optimizations
bulletUser Guide updated to include a presentation of the distributed computing. Chapter 4 is updated to discuss the new Model Profile settings and Chapter 9 is an entire new chapter. Other minor updates to the user guide have also been made.
bulletNew installation program, provides a more robust installation versus the previous one.

This release represents the first step in the distributed computing features of the Software. For the next four to six weeks I am going to undertake an optimization phase to improve and refine several aspects of the distributed computing implementation.

The current approach to transmitting programs between servers involves the desktop application to do all this distribution, resulting in a solution that doesn't scale as well as is possible. The first step in the optimization is to remove this requirement. Making this change will ensure the software scales well with larger numbers of computers. The current configuration is recommended for only a few dozen computers, the next update will scale to hundreds of computers.

The next step following the network communication scalability is to add the ability to take advantage of multi-core processors. This will improve the computational utilization of each computer by almost a factor of 2 because the underlying technique scales almost linearly with CPU processing capability.

Other optimizations are also planned for this development phase. Please check back every few weeks for incremental updates.

November 26, 2006 - Memory Optimization

A minor memory optimization related to the use of strings, which results in slightly better memory usage and program execution speed.  The main purpose of this update was to extend the demo expiration to February 1st, 2007.

October 3, 2006 - New User Guide Chapter - Understanding The Program Source

An important new chapter has been added to the User Guide, Chapter 10.  This chapter provides the insight necessary to understand the structure of the automatically written program source, what the features are and how it might be modified for further customization and incorporation into larger software applications.  Select this link to see the new chapter.

Some other minor updates to the C language source code writer and database functions to help ensure compatibility across a wider range of C compiler.

September 23, 2006 - Fitness Test Times Series History

A time series history of fitness test input parameters is available to all User Defined Functions.  This ability allows UDFs to have more complex features, such as mean, standard deviation and other filtering techniques.  Review this section of the User Guide to see a full description of this feature.  The screen shot below provides a view of the User Defined Function Editor for an example time series history function.