17704367
A Parallel, Linear Programming-based Heuristic for Large-Scale Set Partitioning Problems
We describe a parallel, linear programming and implication-based heuristic for solving set partitioning problems on distributed memory computer architectures. Our implementation is carefully designed to exploit parallelism to greatest advantage in advanced techniques like preprocessing and probing, primal heuristics, and cut generation. A primaldual subproblem simplex method is used for solving the linear programming relaxation, which breaks the linear programming solution process into natural phases from which we can exploit information to find good solutions on the various processors. Implications from the probing operation are shared among the processors. Combining these techniques allows us to obtain solutions to large and difficult problems in a reasonable amount of computing time.
19038002
Computational Experience of an Interior-Point Algorithm in a Parallel Branch-and-Cut Framework
An interior-point algorithm within a branch-and-bound framework for solving nonlinear mixed integer programs is described. In contrast to solving the relaxation to optimality at each tree node, the relaxation is only solved to near-optimality. Analogous to using advanced bases for warmstart solutions in the case of linear MIP, a \dynamic" collection of warmstart vectors is kept. Computational results on various classes of nonlinear mixed integer programs are presented.
9981963
Static Scheduling of Synchronous Data Flow Programs for Digital Signal Processing
Large grain data flow (LGDF) programming is natural and convenient for describing digital signal processing (DSP) systems, but its runtime overhead is costly in real time or cost-sensitive applications. In some situations, designers are not willing to squander computing resources for the sake of programmer convenience. This is particularly true when the target machine is a programmable DSP chip. However, the runtime overhead inherent in most LGDF implementations is not required for most signal processing systems because such systems are mostly synchronous (in the DSP sense). Synchronous data flow (SDF) differs from traditional data flow in that the amount of data produced and consumed by a data flow node is specified a priori for each input and output. This is equivalent to specifying the relative sample rates in signal processing system. This means that the scheduling of SDF nodes need not be done at runtime, but can be done at compile time (statically), so the runtime overhead evaporates. The sample rates can all be different, which is not true of most current data-driven digital signal processing programming methodologies. Synchronous data flow is closely related to computation graphs, a special case of Petri nets. This self-contained paper develops the theory necessary to statically schedule SDF programs on single or multiple processors. A class of static (compile time) scheduling algorithms is proven valid, and specific algorithms are given for scheduling SDF systems onto single or multiple processors.
1549095
Education, entertainment and authenticity: lessons learned from designing an interactive exhibit about medieval music
In this paper we describe the design experience gathered from creating an interactive exhibit about medieval music. This system was designed as an educational exhibit that relies on audio as its only feedback channel. We focused our work on three major goals: educational value, entertainment aspects, and historic authenticity. We present insight into the challenges in designing a system with these goals, and how they could be solved.
36370882
Multi-agent Based Hybrid System for Dynamic Web-Content Adaptation
Context-aware adaptation service is rapidly becoming an important issue. This service overcomes the limitations of wireless devices and maintains adequate service levels in changing environments. The majority of existing studies concentrate on adaptation modules on the client, proxy, or server. These existing studies thus suffer from the problem of having the workload concentrated on a single system. This means that increasing the number of users increases the response time of a user’s request. In this paper, the adaptation module is dispersed and arranged over the client, proxy, and server. The module monitors the context of each system and creates a dispersed adaptation system, optimized for efficient operation. Through this method, faster adaptation work is made possible, even when the number of users increases, and the dividing workload makes more stable system operation possible. In order to evaluate the proposed system, a prototype is constructed and dispersed operations are tested using multimedia content, simulating server overload and comparing the response times and system stability with existing server based adaptation systems. The effectiveness of the system is confirmed through the results.
5648139
The problem with threads
For concurrent programming to become mainstream, we must discard threads as a programming model. Nondeterminism should be judiciously and carefully introduced where needed, and it should be explicit in programs. In general-purpose software engineering practice, we have reached a point where one approach to concurrent programming dominates all others namely, threads, sequential processes that share memory. They represent a key concurrency model supported by modern computers, programming languages, and operating systems. In scientific computing, where performance requirements have long demanded concurrent programming, data-parallel language extensions and message-passing libraries such as PVM, MPI, and OpenMP dominate over threads for concurrent programming. Computer architectures intended for scientific computing often differ significantly from so-called general-purpose architectures.
10518317
Embedded Software
Syntax It is useful to separate syntactic issues from semantic issues. An abstract syntax defines how a design can be decomposed into interconnected components, without being concerned with how a design is represented on paper or in a computer file (that is the concern of the concrete syntax). An abstract syntax is also not concerned with the meaning of the interconnections of components, nor even what a component is. A design is a set of components and relationships among them, where the relationships conform to this abstract syntax. Here, we describe the abstract syntax using informal diagrams that illustrate these sets and relations by giving use cases, although formalizing the abstract syntax is necessary for precision. Port Port Actor Actor