![]() Instead, the BOINC runtime system is based on shared-memory message passing. We avoided platform-specific mechanisms because of the resulting code complexity. Windows has mutexes, messages, and various system calls for process and thread control. For example, POSIX- compliant systems have signals, semaphores, and pipes. How should this work? Operating systems offer a variety of mechanisms for interprocess communication, process control, and synchronization. ![]() The runtime system requires bidirectional communication between the core client and applications. Sections 12 and 13 discuss related work and give conclusions. Sections 3 through 11 discuss the functional areas provided by the runtime system in terms of requirements, problems and solutions. Section 2 describes the overall architecture of the runtime system. This paper describes the problems and design decisions we encountered in developing the BOINC runtime system, and our solutions to these problems. In cases where the developer needs to be involved, this is done via a BOINC Application Programming Interface (API). Most of this interaction is hidden from the application developer. This interaction is implemented by a runtime system implemented by the core client and a runtime library linked with applications. The core client interacts with applications in various ways. ![]() If the limits are exceeded, the core client aborts the application. The runtime system periodically measures these quantities and reports them to the core client. Each task has project-specified limits on memory usage, disk usage, and computation (number of floating-point operations). The core client also guards against certain types of application misbehavior. Applications that are preempted may be suspended or forced to exit, depending on volunteer preferences. It does preemptive round robin scheduling among applications, so that volunteers who participate in multiple projects see periodic change. On a multiprocessor with n CPUs, it attempts (if user preferences allow it) to run n applications at once. It doesn’t generate screensaver graphics itself, but rather communicates with the core client, requesting that one of the running applications display full-screen graphics. A BOINC screensaver (if enabled by the volunteer) runs when the computer is idle.It communicates with the core client using remote procedure calls over TCP. For each task, it shows the fraction done and the estimated time to completion, and lets the user open a window showing the application’s graphics. The BOINC Manager provides a graphical interface allowing users to view and control computation status (see Figure 2).The BOINC core client program communicates with schedulers, uploads and downloads files, and executes and coordinates applications.They may consist of a single process or a dynamic set of multiple processes (see Section 2.3). Applications are typically long-running scientific programs.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |