217,968 research outputs found
A Data Layout Descriptor Language (LADEL).
To transfer data between devices and main memory, standard C block I/O interfaces use block buffers of type char. C++ programs that perform block I/O commonly use typecasting to move data between structures and block buffers. The subject of this thesis, the layout description language (LADEL), represents a high-level solution to the problem of block buffer management. LADEL provides operators that hide the casting ordinarily required to pack and to unpack buffers and guard against overflow of the virtual fields. LADEL also allows a programmer to dynamically define a structured view of a block buffer\u27s contents. This view includes the use of variable length field specifiers, which supports the development of a general specification for an I/O block that optimizes the use of preset buffers. The need for optimizing buffer use arises in file processing algorithms that perform optimally when I/O buffers are filled to capacity. Packing a buffer to capacity can require reasonably complex C++ code. LADEL can be used to reduce this complexity to considerable extent. C++ programs written using LADEL are less complex, easy to maintain, and easier to read than equivalent programs written LADEL. This increase in maintainability is achieved at a cost of approximately 11 % additional time in comparison to programs that use casting to manipulate block buffer data
Recursive structure in computer systems
PhD ThesisStructure plays a important part in the design of large systems.
Unstructured programs are difficult to design or test
and good structure has been recognized as essential to all but
the smallest programs. Similarly, concurrently executing computers
must co-operate in a structured way if an uncontrolled
growth in complexity is to be avoided. The thesis presented
here is that recursive structure can be used to organize and
simplify large programs and highly parallel computers.
In programming, naming concerns the way names are used to
identify objects. Various naming schemes are examined including
'block structured' and 'pathname' naming. A new scheme is
presented as a synthesis of these two combining most of their
advantages. Recursively structured naming is shown to be an
advantage when programs are to be de-composed or combined to
an arbitrary degree. Also, a contribution to the UNIX
United/Newcastle Connection distributed operating system
design is described. This shows how recursive naming was used
in a practical system.
Computation concerns the progress of execution in a computer.
A distinction is made between control driven computation where
the programmer has explicit control over sequencing and data
driven or demand driven computation where sequencing is implicit.
It is shown that recursively structured computation has
attractive locality properties.
The definition of a recursive structure may itself be cyclic
(self-referencing). A new resource management ('garbage collection')
algorithm is presented which can manage cyclic
structures without costs proportional to the system size. The
scheme is an extension of 'reference counting'.
Finally the need for structure in program and computer design
and the advantages of recursive structure are discussed.The Science and Engineering Research Council of Great Britain
A study of systems implementation languages for the POCCNET system
The results are presented of a study of systems implementation languages for the Payload Operations Control Center Network (POCCNET). Criteria are developed for evaluating the languages, and fifteen existing languages are evaluated on the basis of these criteria
Top down, bottom up structured programming and program structuring
New design and programming techniques for shuttle software. Based on previous Apollo experience, recommendations are made to apply top-down structured programming techniques to shuttle software. New software verification techniques for large software systems are recommended. HAL, the higher order language selected for the shuttle flight code, is discussed and found to be adequate for implementing these techniques. Recommendations are made to apply the workable combination of top-down, bottom-up methods in the management of shuttle software. Program structuring is discussed relevant to both programming and management techniques
MOSS, an evaluation of software engineering techniques
An evaluation of the software engineering techniques used for the development of a Modular Operating System (MOSS) was described. MOSS is a general purpose real time operating system which was developed for the Concept Verification Test (CVT) program. Each of the software engineering techniques was described and evaluated based on the experience of the MOSS project. Recommendations for the use of these techniques on future software projects were also given
Recommended from our members
Vulnerable Youth: Federal Mentoring Programs and Issues
[Excerpt] Since the mid-1990s, Congress has supported legislation to establish structured mentoring programs for the most vulnerable youth. The Department of Justice’s Juvenile Mentoring Program (JUMP), the first such program, was implemented in 1994 to provide mentoring services for at-risk youth ages 5 to 20. The purpose of contemporary, structured mentoring programs is to reduce risks by supplementing (but not supplanting) a youth’s relationship with his or her parents. Some of these programs have broad youth development goals while others focus more narrowly on a particular outcome such as reducing gang activity or substance abuse, or improving grades. Research has shown that mentoring programs have been associated with some positive youth outcomes, but that the long-term effects of mentoring on particular outcomes and the ability for mentored youth to sustain gains over time are less certain.
Although there is no single overarching policy today on mentoring, the federal government has supported multiple mentoring efforts for vulnerable youth since JUMP was discontinued in FY2003. In recent years, two mentoring programs—the Mentoring Children of Prisoners (MCP) program and Safe and Drug Free Schools (SDFS) Mentoring program—have provided a significant source of federal funding for mentoring services. However, the programs were short- lived: funding for the MCP program, carried out by the Department of Health and Human Services (HHS) since FY2003, was discontinued as of FY2011; and funding for the SDFS program, carried out by the Department of Education (ED) since FY2002, was discontinued as of FY2010.
The federal government currently funds mentoring efforts through short-term grants and initiatives. Many of these grants are carried out by the Department of Justice (DOJ), which has allocated funding for multiple mentoring programs, including mentoring for certain vulnerable youth and research on mentoring. In addition, the federal government has provided funding to programs with vulnerable youth that have a strong, but not exclusive, mentoring component. Youth ChalleNGe, an educational and leadership program for at-risk youth administered by the Department of Defense, helps to engage youth in work and school, and leadership opportunities. Adult mentors assist enrolled youth with their transition from the program for at least one year. Finally, federal agencies coordinate on mentoring issues. The Federal Mentoring Council was created in 2006 to address the ways agencies can combine resources and training and technical assistance to federally administered mentoring programs, and to serve as a clearinghouse on mentoring issues for the federal government. The council has been inactive in recent years but federal agencies, including the Departments of Housing and Urban Development (HUD) and Justice, are collaborating to reconvene the council.
This report begins with an overview of the purpose of mentoring, including a brief discussion on research of structured mentoring programs. The report then describes the evolution of federal policies on mentoring since the early 1990s. The report provides an overview of the federal mentoring initiatives that are currently funded. Note that additional federal programs and policies authorize funding for mentoring activities, among multiple other activities and services. These programs are not discussed in this report. The report concludes with an overview of issues that may be of interest to Congress. These issues include the limitations of research on outcomes for mentored youth, the potential need for additional mentors, grantees’ challenges in sustaining funding, and the possible discontinuation of federal mentoring funding. The Appendix includes a description of two federal mentoring programs that were funded until FY2010 and FY2011
A Pattern Language for High-Performance Computing Resilience
High-performance computing systems (HPC) provide powerful capabilities for
modeling, simulation, and data analytics for a broad class of computational
problems. They enable extreme performance of the order of quadrillion
floating-point arithmetic calculations per second by aggregating the power of
millions of compute, memory, networking and storage components. With the
rapidly growing scale and complexity of HPC systems for achieving even greater
performance, ensuring their reliable operation in the face of system
degradations and failures is a critical challenge. System fault events often
lead the scientific applications to produce incorrect results, or may even
cause their untimely termination. The sheer number of components in modern
extreme-scale HPC systems and the complex interactions and dependencies among
the hardware and software components, the applications, and the physical
environment makes the design of practical solutions that support fault
resilience a complex undertaking. To manage this complexity, we developed a
methodology for designing HPC resilience solutions using design patterns. We
codified the well-known techniques for handling faults, errors and failures
that have been devised, applied and improved upon over the past three decades
in the form of design patterns. In this paper, we present a pattern language to
enable a structured approach to the development of HPC resilience solutions.
The pattern language reveals the relations among the resilience patterns and
provides the means to explore alternative techniques for handling a specific
fault model that may have different efficiency and complexity characteristics.
Using the pattern language enables the design and implementation of
comprehensive resilience solutions as a set of interconnected resilience
patterns that can be instantiated across layers of the system stack.Comment: Proceedings of the 22nd European Conference on Pattern Languages of
Program
The Evaluation of Enhanced Academic Instruction in After-School Programs: Findings After the First Year of Implementation
This report presents one-year implementation and impact findings on two supplemental academic instruction approaches developed for after-school settings -- one for math and one for reading. Compared with regular after-school programming, the supplemental math program had impacts on student SAT 10 test scores and the supplemental reading program did not --although the reading program had some effect on reading fluency
- …