604 research outputs found

    Scheduling Moldable Tasks for Dynamic {SMP} Clusters in {S}o{C} Technology

    Get PDF
    The paper presents an algorithm for scheduling parallel programs for execution in a parallel architecture based on dynamic SMP processor clusters with data transfers on the fly. The algorithm is based on the concept of moldable computational tasks. First, an initial program graph is decomposed into sub­graphs, which are then treated as moldable tasks. So identified moldable tasks are then scheduled using an algorithm with warranted schedule length

    A sex-specific switch between visual and olfactory inputs underlies adaptive sex differences in behavior

    Get PDF
    While males and females largely share the same genome and nervous system, they differ profoundly in reproductive investments and require distinct behavioral, morphological and physiological adaptations. How can the nervous system, while bound by both developmental and biophysical constraints, produce these sexdifferences in behavior? Here we uncover a novel dimorphism in Drosophila melanogaster that allows deployment of completely different behavioral repertoires in males and females with minimum changes to circuit architecture. Sexual differentiation of only a small number of higher-order neurons in the brain leads to a change in connectivity related to the primary reproductive needs of both sexes - courtship pursuit in males and communal oviposition in females. This study explains how an apparently similar brain generates distinct behavioral repertoires in the two sexes and presents a fundamental principle of neural circuit organization that may be extended to other species

    A versatile programming model for dynamic task scheduling on cluster computers

    Get PDF
    This dissertation studies the development of application programs for parallel and distributed computer systems, especially PC clusters. A methodology is proposed to increase the efficiency of code development, the productivity of programmers and enhance performance of executing the developed programs on PC clusters while facilitating improvement of scalability and code portability of these programs. A new programming model, named the Super-Programming Model (SPM), is created. Programs are developed assuming an instruction set architecture comprised of SuperInstructions (SIs). SPM models the target system as a large Virtual Machine (VM); VM contains functional units which are underlain with sub-computer systems and SIs are implemented with codes. When these functional units execute SIs, their codes will run on member computers to perform the corresponding operations. This approach resembles the process of designing instruction sets for microprocessors but the VM employs much coarser instructions and data structures. SIs use Super-Data Blocks (SDBs) as their operands. Each SI is assigned to a single member computer and is indivisible (i.e., its implementation is not interrupted for I/O). SIs have predictable execution times because SDB sizes are limited by predefined thresholds. These qualities of SIs help dynamic load balancing. Employing software to implement instructions makes this approach more flexible. The developed programs fit to architectures of cluster systems better. SPM provides mechanisms, such as dynamic load balancing, to assure the efficient execution of programs. The vast majority of current programming models lack such mechanisms for distributed environments that suffer from long communication latencies. Since SPM employs coarse-grain tasks, the overall management overhead is small. SDB access can often overlap the execution of other SIs; a cache system further decreases average memory latencies. Since all SDBs are virtual entities, with the runtime system support, they can be accessed in parallel and efficiently minimizes additional constraints to parallelism from underlying computer systems. In this research, a reference implementation of VM has been developed. A performance estimation model is developed that takes these features into account. Finally, the definition of scalability for parallel/distributed processing is refined to represent a multi-dimensional entity. Sample cases are analyzed
    corecore