ppxscal/embedding_network huggingface dataset:
A compiler technique for improving whole-program locality
Authors: Mahmut Taylan Kandemir
Venue: ACM SIGPLAN Notices (2001)

Exploiting spatial and temporal locality is essential for obtaining high performance on modern computers. Writing programs that exhibit high locality of reference is difficult and error-prone. Compiler researchers have developed loop transformations that allow the conversion of programs to exploit locality. Recently, transformations that change the memory layouts of multi-dimensional arrays---called data transformations---have been proposed. Unfortunately, both data and loop transformations have some important draw-backs. In this work, we present an integrated framework that uses loop and data transformations in concert to exploit the benefits of both approaches while minimizing the impact of their disadvantages. Our approach works inter-procedurally on acyclic call graphs, uses profile data to eliminate layout conflicts, and is unique in its capability of resolving conflicting layout requirements of different references to the same array in the same nest and in different nests for regular array-based applications.The optimization technique presented in this paper has been implemented in a source-to-source translator. We evaluate its performance using standard benchmark suites and several math libraries (complete programs) with large input sizes. Experimental results show that our approach reduces the overall execution times of original codes by 17.5% on the average. This reduction comes from three important characteristics of the technique, namely, resolving layout conflicts between references to the same array in a loop nest, determining a suitable order to propagate layout modifications across loop nests, and propagating layouts between different procedures in the program --- all in a unified framework.
Compiling matrix operations
Authors: Bernard A. Galler, Alan J. Perlis
Venue: Communications of the ACM (1962)

It is unfortunate that almost all of the presently used algebraic languages do not provide the capability of linear algebra. Operations such as the inner product of vectors, the product of two matrices, and the multiplication of a matrix by a scaler must inevitably be written out in detail in terms of the individual components. The reasons usually given for avoiding linear algebra in these languages are (1) the difficulties which would arise in scanning linear algebraic expressions, and (2) the uncertainty involved as to the amount of temporary storage needed during the evaluation of linear algebraic expressions when the program is executed. The purpose of this paper is to show how these two types of difficulties can be overcome. Although suggestions have been made for even further increasing the general capability of ALGOL such as including the ability to form a matrix from a collection of vectors, we shall be content here to consider the ordinary operations of linear algebra. Even if this much becomes available in algebraic languages, considerable progress will have been made. The following remarks constitute a suggestion for the addition to ALGOL of linear algebraic expressions.
Nomadic pict: correct communication infrastructure for mobile computation
Authors: Asis Unyapoth, Peter Sewell
Venue: ACM SIGPLAN Notices (2001)

This paper addresses the design and verification of infrastructure for mobile computation. In particular, we study language primitives for communication between mobile agents. They can be classi ed into two groups. At a low level there are location dependent primitives that require a programmer to know the current site of a mobile agent in order to communicate with it. At a high level there are location independent primitives that allow communication with a mobile agent irrespective of any migrations. Implementation of the high level requires delicate distributed infrastructure algorithms. In earlier work with Wojciechowski and Pierce we made the two levels precise as process calculi, allowing such algorithms to be expressed as encodings of the high level into the low level; we built NOMADIC PICT, a distributed programming language for experimenting with such encodings. In this paper we turn to semantics, giving a de nition of the core language and proving correctness of an example infrastructure. This requires novel techniques: we develop equivalences that take migration into account, and reasoning principles for agents that are temporarily immobile (eg. waiting on a lock elsewhere in the system).
Communicating sequential processes
Authors: C. A. R. Hoare
Venue: Communications of the ACM (1983)

This paper suggests that input and output are basic primitives of programming and that parallel composition of communicating sequential processes is a fundamental program structuring method. When combined with a development of Dijkstra's guarded command, these concepts are surprisingly versatile. Their use is illustrated by sample solutions of a variety of familiar programming exercises.
Java 2 distributed object middleware performance analysis and optimization
Authors: Matjaz B. Juric, Ivan Rozman, Simon Nash
Venue: ACM SIGPLAN Notices (2000)

This paper is focused on the performance analysis, comparison and optimization of distributed object middleware for Java 2: RMI (Remote Method Invocation), CORBA IDL (Interface Definition Language) and RMI-IIOP (Remote Method Invocation on Internet Inter-ORB Protocol). The paper presents the following contributions to the research on distributed object performance. First, a detailed performance analysis is provided with the comparison. These results help to understand how the models perform. Second, an overhead analysis has been done, which explains why there are differences in peRformance. Third, optimizations and improved performance for RMI-IIOP and CORBA IDL are presented. These show considerably better performance in all areas compared to the original versions.
A new paradigm for dichotomy-based constrained encoding
Authors: O. Coudert
Venue: Proceedings of the conference on Design, automation and test in Europe (1998)

One essential step in sequential logic synthesis consists of finding a state encoding that meets some requirements, such as optimal implementation, or correctness in the case of asynchronous FSMs. Dichotomy-based constrained encoding is more general than other constrained encoding frameworks, but it is also more difficult to solve. This paper introduces a new formalization of this problem, which leads to original exact and heuristic algorithms. Experimental results show that the resulting exact solver outperforms the previous approaches.
A study of storage partitioning using a mathematical model of locality
Authors: E. G. Coffman,  Jr., Thomas A. Ryan,  Jr.
Venue: Communications of the ACM (1972)

Both fixed and dynamic storage partitioning procedures are examined for use in multiprogramming systems. The storage requirement of programs is modeled as a stationary Gaussian process. Experiments justifying this model are described. By means of this model dynamic storage partitioning is shown to provide substantial increases in storage utilization and operating efficiency over fixed partitioning.
Robust annotation positioning in digital documents
Authors: A. J. Bernheim Brush, David Bargeron, Anoop Gupta, J. J. Cadiz
Venue: Proceedings of the SIGCHI conference on Human factors in computing systems (2001)

Increasingly, documents exist primarily in digital form. System designers have recently focused on making it easier to read digital documents, with annotation as an important new feature. But supporting annotation well is difficult because digital documents are frequently modified, making it challenging to correctly reposition annotations in modified versions. Few systems have addressed this issue, and even fewer have approached the problem from the users' point of view. This paper reports the results of two studies examining user expectations for robust annotation positioning in modified documents. We explore how users react to lost annotations, the relationship between types of document modifications and user expectations, and whether users pay attention to text surrounding their annotations. Our results could contribute substantially to effective digital document annotation systems.
Research on a faster algorithm for pattern matching
Authors: Han Kesong, Wang Yongcheng, Chen Guilin
Venue: Proceedings of the fifth international workshop on on Information retrieval with Asian languages (2000)

Based on deep analysis of Boyer-Moore algorithm and Quick Search algorithm, we propose a faster algorithm for single pattern matching by utilizing the continuous skip over the text, this idea enables its high performance because of the large shift on the text, its best time complexity is O(n/(m+1)), which is an inspiring research result. We also discuss the average time complexity of this suggested algorithm, which demonstrates and proves its high efficiency. Our experimental result shows that the algorithm is superior to other algorithms for pattern matching, such as Boyer-Moore algorithm, Quick Search algorithm, Shift Or algorithm, Reverse Factor algorithm, Reverse Colussi algorithm, Improved Apostolico-Giancarlo algorithm and so on. Especially, when the pattern is smaller, our algorithm is more efficient than other algorithms, which is very practical in natural language text retrieval.
Pipelined Computation of Very Large Word-Length LNS Addition/Subtraction with Polynomial Hardware Cost
Authors: Chichyang Chen, Rui-Lin Chen, Chih-Huan Yang
Venue: IEEE Transactions on Computers (2000)

A novel pipelined method is proposed to compute the addition/subtraction in very large word-length logarithmic number system (LNS) arithmetic. Digit-parallel additive-normalization and digit on-line multiplicative-normalization methods are adopted to compute the exponential and logarithmic functions, respectively, in LNS addition/subtraction. These two methods can both be implemented in a pipelined and regular architecture. The size of the required lookup tables is now proportional to a third-order polynomial function, instead of an exponential function, of the word length. The total size of the tables in a 32-bit LNS unit is estimated to be less than 53.5 kbits and the total size of the tables in a 64-bit LNS unit will be less than 471 kbits. Furthermore, the hardware cost of the other circuits in the proposed LNS unit is only proportional to the square of the word length. This study also develops a simple leading-zero-bits prediction technique that can significantly enhance the precision in LNS addition/subtraction computation. When compared to floating-point arithmetic design, our approach still suffers from large hardware cost and pipeline latency. However, the proposed approach has provided a theoretical advancement in the development of very large word-length LNS arithmetic.
Index ranges for matrix calculi
Authors: R. Bayer, C. Witzgall
Venue: Communications of the ACM (1972)

The paper describes a scheme for symbolic manipulation of index expressions which arise as a by-product of the symbolic manipulation of expressions in the matrix calculi described by the authors in a previous paper. This scheme attempts program optimization by transforming the original algorithm rather than the machine code. The goal is to automatically generate code for handling the tedious address calculations necessitated by complicated data structures. The paper is therefore preoccupied with &ldquo;indexing by position.&rdquo; The relationship of &ldquo;indexing by name&rdquo; and &ldquo;indexing by position&rdquo; is discussed.
Using a familiar package to demonstrate a difficult concept: using an excel spreadsheet model to explain the concepts of neural networks to undergraduates
Authors: William Fone
Venue: Proceedings of the 6th annual conference on Innovation and technology in computer science education (2001)

A course introducing neural networks to second year undergraduates with mixed disciplinary backgrounds needed a tool to reduce the overheads of simplifying the complex mathematical and programming skills normally associated with the subject. An Excel model was produced that had the added benefit of reducing anxiety, as all students taking the course are competent with Excel spreadsheets.
Algorithm 418: calculation of Fourier integrals [D1]
Authors: Bo Einarsson
Venue: Communications of the ACM (1972)

The most commonly used formula for calculating Fourier integrals is Filon's formula, which is based on the approximation of the function by a quadratic in each double interval. In order to obtain a better approximation the cubic spline fit is used in [1]. The obtained formulas do not need the explicit calculation of the spline fit, but in addition to the function values at all intermediate points, the values of the first and second derivatives at the boundary points are required. However, these values are often obtained from symmetry conditions. If the derivatives at the end-points are unknown, they may be calculated from a cubic spline fit, for example by using some exterior points or by using two extra interior conditions for the spline fit. It can also be noted that in certain periodic cases the terms containing the derivatives will cancel, and their values will be superfluous. The use of Algorithm 353 [2] is recommended if the frequency &ohgr;/&pgr; is a positive integer and the interval is [0,1]. Test computations reported in [1] indicate that the spline formula is more accurate than Filon's formula. Both are of the fourth order. The expansion of the error term in powers of the step length contains only even powers, and therefore the use of Richardson extrapolation is very efficient.
Semiconcurrent Error Detection in Data Paths
Authors: Anna Antola, Fabrizio Ferrandi, Vincenzo Piuri, Mariagiovanna Sami
Venue: IEEE Transactions on Computers (2001)

A high-level synthesis strategy is proposed for design of semiconcurrently self-checking devices. Attention is mainly focused on data path design. After identifying the reference architecture against which cost and performance are evaluated, a simultaneous scheduling-and-allocation strategy is presented for linear-code data flow graphs, allowing resource sharing between nominal and checking data paths. The proposed strategy is actually independent from a specific scheduling-and-allocation algorithm since it is essentially concerned with the introduction of the fault tolerance issue at high-abstraction level in any design environment. Conventional duplication with comparison, even if considered in a high-level synthesis strategy, leads to high circuit complexity increase. The proposed approach provides that the required checking periodicity is satisfied while minimizing additional functional units by means of maximum reuse of the resources available for the nominal computation as long as error detection ability is preserved. The strategy is then extended to deal with branches and loops in the data path. Risk of error aliasing due to resource sharing is analyzed.
The case for dynamic storage allocation
Authors: Burnett H. Sams
Venue: Communications of the ACM (1961)

Programming is the process of developing a scheme for solving a problem using a computer. The programmer's task is to minimize the cost of achieving a solution. This cost involves the interrelated factors of planning, coding, debugging, storage space, and computation time. The storage allocation problem is the subtask of assigning the space-taking objects (programs and data) to the available storage devices (core, drum, disc and magnetic tape).
Efficient parallel algorithms for some graph problems
Authors: Francis Y. Chin, John Lam, I-Ngo Chen
Venue: Communications of the ACM (1982)

We study parallel algorithms for a number of graph problems, using the Single Instruction Stream-Multiple Data Stream model. We assume that the processors have access to a common memory and that no memory or data alignment time penalties are incurred. We derive a general time bound for a parallel algorithm that uses K processors for finding the connected components of an undirected graph. In particular, an O(log2 n) time bound can be achieved using only K = n&lceil;n/log2 n&rceil; processors. This result is optimal in the sense that the speedup ratio is linear with the number of processors used. The algorithm can also be modified to solve a whole class of graph problems with the same time bound and fewer processors than previous parallel methods.
Optimal Real-Time Scheduling with Minimal Rejections andMinimal Finishing Time
Authors: Sheng-Tzong Cheng, Shyh-In Hwang
Venue: Real-Time Systems (2001)

Real-time computer systems are essential for many applications, such as robot control, avionics, medical instrumentation, manufacturing, etc. The correctness of the system depends on the temporal correctness as well as the functional correctness of the task executions. In order to assure temporal correctness it is necessary that the resources be scheduled to meet the temporal requirements of applications. When we consider the problem of nonpreemptive scheduling of a set of tasks in a processor for which no feasible solution exists, some tasks may have to be rejected so that a schedule can be generated for the rest. In this paper, we consider the problem of generating an optimal schedule such that the number of rejected tasks is minimized, and then the finish time is minimized for the accepted tasks. We propose to use an analytic approach to solve this problem. We first discuss the super sequence based technique which was originally proposed for reducing the search space in testing the feasibility of a task set. Then we show by the Conformation theorem that the super sequence constructed from the task set also provides a valid and reduced search space for the optimization problem. While the complexity of our scheduling algorithm in the worst case remains exponential, our simulation results show that the cost is reasonable for the average case.
Layout-driven high level synthesis for FPGA based architectures
Authors: M. Xu, F. J. Kurdahi
Venue: Proceedings of the conference on Design, automation and test in Europe (1998)

In this paper, we address the problem of layout-driven scheduling-binding as these steps have a direct relevance on the final performance of the design. The importance of effective and efficient accounting of layout effects is well-established in High-Level Synthesis (HLS),since it allows more efficient exploration of the design space and the generation of solutions with predictable metrics. This feature is highly desirable in order to avoid unnecessary iterations through the design process. By producing not only an RTL netlist but also an approximate physical topology of implementation at the chip level, we ensure that the solution will perform at the predicted metric once implemented, thus avoiding unnecessary delays in the design process.
A comparison of the FORTRAN language implementation for several computers
Authors: Donald L. Wright
Venue: Communications of the ACM (1966)

A feature-by-feature comparison is made of five different implementations of FORTRAN IV representing three different manufacturers. A table is constructed showing, where possible, the use of each feature in each implementation. Only those items which are different from, or have been added to FORTRAN II are shown.
Simultaneous signal and power routing under K model
Authors: James D. Z. Ma, Lei He
Venue: Proceedings of the 2001 international workshop on System-level interconnect prediction (2001)

In this paper, we study the min-area simultaneous signal and power routing problem under a given noise bound (i.e., the SPR/NB problem). The resulting SPR/NB solution is free of capacitive noise and satisfies a given inductive noise bound under the $K_{eff}$ model. We first develop the pre-routing area estimation techniques for the min-area simultaneous shield insertion and net ordering (SINO) solutions. We then propose a two-phase approach to solve the min-area SPR/NB problem: in the first phase, we define a regular power/ground (P/G) structure according to the above area estimation; and in the second phase, we carry out SINO procedures to search for the best solution in a very limited neighborhood of the pre-defined P/G structure. Experimental results show that our approach is able to achieve the min-area SPR/NB solution efficiently by searching only the first-order neighborhood of the pre-defined P/G structure. Our ongoing work extends the interconnect estimation and two-phase algorithm to an explicit RLC noise model.
A user-friendly algorithm
Authors: Barry Dwyer
Venue: Communications of the ACM (1981)

The interface between a person and a computer can be looked at from either side. Programmers tend to view it from the inside; they consider it their job to defend the machine against errors made by its users. From the outside, the user sees his/her problems as paramount. He/she is often at odds with this complex, inflexible, albeit powerful tool. The needs of both people and machines can be reconciled; users will respond more efficiently and intelligently if they receive meaningful feedback. A &ldquo;user-friendly&rdquo; algorithm that covers a wide range of interactive environments and is typical of most operating systems and many application programs is presented.
Multilevel cooperative search problem: application to the circuit/hypergraph partitioning
Authors: M. Ouyang, M. Toulouse, K. Thulasiraman, F. Glover, J. Deogun
Venue: Proceedings of the 2000 international conference on Computer-aided design (2001)

In this paper, we present an adaptation for hypergraph partitioning of the multilevel cooperative search paradigm first introduce by Toulouse, Thulasiraman, and Glover [15]. We also introduce a new approach for coarsening hypergraphs, and describe a parallel implementation of this algorithm on the SGI O200 system. Experiments on ISPD98 benchmark suite of circuits show, for 4-way and 8-way partitioning, a reduction of 3% to 15% on hyperedge-cut compared to hMETIS. Bisections of hypergraphs based on our algorithm also outperforms hMETIS, although more modestly.
Value orientation of computer science students
Authors: Ronald E. Anderson
Venue: Communications of the ACM (1978)

Technological and nontechnological value orientations are investigated with special attention to the complexity of value structures. Computer science students, who are closely associated with technology, contrast with social science students, who are often technologically aloof. This is confirmed by the value ratings of 313 students at the University of Minnesota in 1972. Computer science majors were found to have a more complex value structure than social science majors.
A proposal to establish a pseudo virtual memory via writable overlays
Authors: Thomas R. Spacek
Venue: Communications of the ACM (1972)

Many computer systems solve executable storage size problems for large programs by using overlays. However, it appears that no one overlay scheme contains a well-balanced combination of the most useful capabilities which are found in various existing techniques. A proposal is presented which utilizes several of the best capabilities from existing schemes and is complemented by several additional features, e.g. writable overlays. The writable overlay capability provides a virtual memory effect, although the programmer may still be required to design the overlay configuration. Since overlay structuring is a complex task, several tools (including a graphic display) are included in the proposal in order to aid the programmer in the design. The content of overlays is briefly discussed, and it is noted that many of the details of the final overlay configuration may be decided after the fact.