In October of 1976 I observed that a certain algorithm – parallel reduction – was associated with monoids: collections of elements with an associative operation. That observation led me to believe that it is possible to associate every useful algorithm with a mathematical theory and that such association allows for both widest possible use and meaningful taxonomy. As mathematicians learned to lift theorems into their most general settings, so I wanted to lift algorithms and data structures. One seldom needs to know the exact type of data on which an algorithm works since most algorithms work on many similar types. In order to write an algorithm one needs only to know the properties of operations on data. I call a collection of types with similar properties on which an algorithm makes sense the underlying concept of the algorithm. Also, in order to pick an efficient algorithm one needs to know the complexity of these operations. In other words, complexity is an essential part of the interface to a concept.
Read the rest of this entry »
23 Sep
Posted by jj as Development
Over the last several years, computing systems based on adaptive learning with fine-grained parallel architectures have moved from obscurity to front-page prominence. These systems derive some of their novel architecture from ideas gleaned from biology, hence the name “neural network”. Although many of the ideas behind this field are not new, improved computing hardware, better understanding of learning algorithms, and limitations of traditional approaches have combined to renew interest in neural nets.
Read the rest of this entry »
21 Sep
Posted by jj as Programming
Parallel prefix networks are used in priority encoders, and to compute carries in fast adders. A typical microprocessor contains many such networks, and often they are hot- spots. Although parallel prefix (or scan) has been much studied, surprisingly many questions remain unanswered. As geometries shrink, it is not at all clear how to make low power prefix networks with the desired timing properties. Here, I develop a method of writing very highly parameterised parallel prefix network generators in which we specify the combinators used to build the networks and then search for a topology that matches the given delay constraints. This first case study indicates that, in this functional setting, combinators and search fit well together. The resulting prefix networks are both small and shallow, and likely to be useful in low power applications.
Read the rest of this entry »
Adaptive algorithms are an important technique to achieve portable high performance. They choose among solution methods and optimizations according to expected performance on a particular machine. Grid environments make the adaptation problem harder, because the optimal decision may change across runs and even during runtime. Therefore, the performance model used by an adaptive algorithm must be able to change decisions without high overhead. In this paper, we present work that is modifying previous research into rapid performance modeling to support adaptive grid applications through sampling and high granularity modeling. We also outline preliminary results that show the ability to predict differences in performance among algorithms in the same program.
Read the rest of this entry »
Brains, unlike artificial neural nets, use sym- bols to summarise and reason about perceptual input. But unlike symbolic AI, they “ground” the symbols in the data: the symbols have meaning in terms of data, not just meaning imposed by the outside user. If neural nets could be made to grow their own symbols in the way that brains do, there would be a good prospect of combining neural networks and symbolic AI, in such a way as to combine the good features of each.
Read the rest of this entry »
This is a literature review on neural networks and related algorithms. It is aimed to get a general understanding on neural networks and find out the possible applications of these models in information retrieval (IR) systems.
Beginning with a preliminary definition and typical structure of neural networks, neural networks are studied with respect to their learning processes and architecture structures. A case study on some specific networks and related algorithms is followed. The applications of some neural network models and related algorithms in information retrieval systems are then investigated. Problems on applying neural network models into IR systems are finally summarized in the conclusion.
Read the rest of this entry »
17 Sep
Posted by jj as Development
There is an ongoing information war raging in the software world. Despite free software developers’ best efforts, new proprietary software continues to proliferate. Improved techniques must be developed to reverse engineer efficiently closed data formats so that free, interoperable solutions can be deployed under Linux.
Software reverse engineering occurs on various levels. It may be necessary to study a piece of poorly written, poorly commented code developed in a high-level language such as C++ and understand what the original program was supposed to accomplish. It may also be necessary to disassemble a program that has been compiled into machine language and express it as a higher-level language. In doing this, the underlying algorithms can eventually be expressed as higher-level concepts in a human language. After obtaining an algorithmic description via reverse engineering, the algorithm can be reimplemented for any language on any computing platform.
Read the rest of this entry »
16 Sep
Posted by jj as Dotnet
Nowadays, transacting business through E-commerce platform has become an important business trading way in modern society. E-commerce has been applied to literally every aspect of our society. The requirements of users are variable, different methods are in need of realizing E-commerce, even the deployment platforms are different. The JSP, ASP, HTML and other traditional scripting language has become unable to meet the needs of designing a complex system, even if it has been realized, the coupling between codes, the configuration environment and system deployment dependency fall far short of various requirements of users. It is a highly skilled work which demands good conception of beauty and much professional knowledge of the program designers. However, it is difficult to fulfill the needs in reality.
Read the rest of this entry »