I'm a newbie at shells and knowledge bases and, well, all of AI, but I'm
interested in using something like clips to help advise people how to
optimize numerical software. I have something that collects a lot of
information about a program including run-time profiling and static flow
information and I'd like to add something that will go through this and
make suggestions on how to optimize a program. I would prefer some sort
of weight or order to the suggestions. Maybe even some score as to how
certain or how well an optimization might work. It's not clear to me how
something like clips would handle this.
I'd also like to know whether clips can deal with structures of facts.
For example, a program is represented as a tree and each node in the
tree contains attributes such as whether it can be vectorized if it's a
loop. Can this tree of information be processed within clips? And how
would clips "wander" around the tree? For example, can a rule be written
along the lines of: if all of the array expressions within this loop
access only local elements then no border updates are needed for this
loop? And then apply this rule set to every loop nest in a program. And
then write a rule that says: if any loop nest requires a border update
for an array, then rewrite the array to contains space for border updates.