The Infona portal uses cookies, i.e. strings of text saved by a browser on the user's device. The portal can access those files and use them to remember the user's data, such as their chosen settings (screen view, interface language, etc.), or their login data. By using the Infona portal the user accepts automatic saving and using this information for portal operation purposes. More information on the subject can be found in the Privacy Policy and Terms of Service. By closing this window the user confirms that they have read the information on cookie usage, and they accept the privacy policy and the way cookies are used by the portal. You can change the cookie settings in your browser.
Fault-tolerance is becoming increasingly important as we enter the era of exascale computing. Increasing the number of cores results in a smaller mean time between failures, and consequently, higher probability of errors. Among the different software fault tolerance techniques, checkpoint/restart is the most commonly used method in supercomputers, the de-facto standard for large-scale systems. Although...
The Go language lacks built-in data structures that allow fine-grained concurrent access. In particular, its map data type, one of only two generic collections in Go, limits concurrency to the case where all operations are read-only; any mutation (insert, update, or remove) requires exclusive access to the entire map. The tight integration of this map into the Go language and runtime precludes its...
Parallel programming is becoming more and more prevalent in this era of concurrent programming. Because of the nondeterministic nature of parallel programming, it is notoriously difficult to debug concurrency bugs, moreover attempt to fix one bug may result in deadlock or other concurrency bugs. Though many static and dynamic data race detection tool is proposed in recent years, none of them is interactive...
In a precise race-detector, a race is detected only if the trace exhibits a real race. In such tools, every memory access from each thread is typically checked for conflicting accesses. We show that there are many redundant memory access checks present in real world program execution traces. Removing these redundant checks during the online run-time instrumentation stage can significantly speed up...
High-level, directive-based solutions are becoming the programming models (PMs) of the multi/many-core architectures. Several solutions relying on operating system (OS) threads perfectly work with a moderate number of cores. However, exascale systems will spawn hundreds of thousands of threads in order to exploit their massive parallel architectures and thus conventional OS threads are too heavy for...
Data provenance strives for explaining how thecomputation was performed by recording a trace of the execution. The provenance trace is useful across a wide-range of workflowsto improve the dependability, security, and efficiency of softwaresystems. In this paper, we present Inspector, a POSIX-compliantdata provenance library for shared-memory multithreadedprograms. The Inspector library is completely...
The article deals with the development of threads synchronizing strategies based on the creation of concurrent “flat-combining” data structures as well as research of their performance. The paper considers “flat-combining” approach and its implementation in the library libcds, the development of thread synchronization strategy and its possible implementations. The efficiency of synchronization strategies...
The availability of commercial hardware transactionalmemory (TM) systems has not yet been met with a rise in the numberof large-scale programs that use memory transactions explicitly. Asignificant impediment to the use of TM is the lack of tool support, specifically profilers that can identify and explain performance anomalies. In this paper, we introduce an end-to-end system that enables lowoverheadperformance...
Software Transactional Memory (STM) is a synchronization method proposed as an alternative to lock-based synchronization. It provides a higher-level of abstraction that is easier to program, and that enables software composition. Transactions are defined by programmers, but the runtime system is responsible for detecting conflicts and avoiding race conditions. One of the design axis in STMs is how...
The development of non-blocking code is difficult; developers must ensure the progress of an operation on shared memory despite conflicting operations. Managing this shared memory in a non-blocking fashion is even more problematic. The non-blocking property guarantees that progress is made toward the desired operation in a finite amount of time. We present a framework that implements memory reclamation...
This paper shortly describes creating asynchronous methods by delegates, the locking techniques and locking a shared resource by an instance method using the Monitor. Enter and Monitor. Exit member methods of the Monitor class. The paper demonstrates the use of asynchronous methods and locking shared resources in the distributed .NET application which consists of the Windows Communication Foundation...
With the popularity of parallel computing, the serial program is unable to take advantage of the multi-core. In this paper, A MP3 audio parallel decoding algorithm based on libmad library for multicore platform is proposed to improve the decoding speed. In this method, to reach the parallel aim, more than one decoder is provided. Experimental results indicate that the algorithm improves the efficiency...
Deterministic execution of a multithreaded application guarantees the same output as long as the application runs with the same input parameters. Determinism helps a programmer to test and debug an application and to provide fault-tolerance in the systems based on replicas. Additionally, Transactional Memory (TM) greatly simplifies development of multithreaded applications where applications use transactions...
This paper presents the application of the PCJ library for the parallelization of the selected HPC applications implemented in Java language. The library is motivated by partitioned global address space (PGAS) model represented by Co-Array Fortran, Unified Parallel C, X10 or Titanium.
Data races are a common problem on shared-memory parallel computers, including multicores. Analysis programs called race detectors help find and eliminate them. However, current race detectors are geared for specific concurrency libraries. When programmers use libraries unknown to a given detector, the detector becomes useless or requires extensive reprogramming. We introduce a new synchronization...
Software-implemented fault tolerance (SIFT) mechanisms allow to tolerate transient hardware faults in commercial off-the-shelf (COTS) systems without using specialized resilient hardware. Unfortunately, existing SIFT methods at both the compiler and the operating system levels are often restricted to single-threaded applications and hence do not apply to multithreaded software on modern multicore...
We present an auto-parallelization technique for generating GPU implementation of data-structure operations from a sequential spec-ification. The technique partitions the data-structure operations into barrier-separated phases such that each phase executes only homogeneous operations. Homogeneity is dictated by the method type, which is derived from the specification. Two key aspects of our technique...
We analyze the fundamental performance impact of enforcing a fixed order of synchronization operations to achieve weak deterministic execution. Our analysis is in three parts, performed on a real system using the SPLASH-2 and PAR-SEC benchmarks. First, we quantify the impact of various sources of nondeterminism on execution of data-race-free programs. We find that thread synchronization is the prevalent...
With the cloud storage of booming development in recent years, the synchronization technology between smartphones and servers will get more attention and better development. In this paper analyzes the data synchronization library libsyncml overall framework, and identifies potential performance bottlenecks in the framework, and then uses the thread pool and other ways to improve the synchronization...
The design and implementation of an OpenMP library for Java is described. The library not only encodes OpenMP semantics as open source but also provides a simple platform to enable further experimentation. The Java OpenMP library design was tested against OpenMP C programs using Visual Studio 2010 and gcc.
Set the date range to filter the displayed results. You can set a starting date, ending date or both. You can enter the dates manually or choose them from the calendar.