Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Nikolaos Papaspyrou is active.

Publication


Featured researches published by Nikolaos Papaspyrou.


annual erlang workshop | 2012

A scalability benchmark suite for Erlang/OTP

Stavros Aronis; Nikolaos Papaspyrou; Katerina Roukounaki; Konstantinos F. Sagonas; Yiannis Tsiouris; Ioannis E. Venetis

Programming language implementers rely heavily on benchmarking for measuring and understanding performance of algorithms, architectural designs, and trade-offs between alternative implementations of compilers, runtime systems, and virtual machine components. Given this fact, it seems a bit ironic that it is often more difficult to come up with a good benchmark suite than a good implementation of a programming language. This paper presents the main aspects of the design and the current status of bencherl, a publicly available scalability benchmark suite for applications written in Erlang. In contrast to other benchmark suites, which are usually designed to report a particular performance point, our benchmark suite aims to assess scalability, i.e., help developers to study a set of performance points that show how an applications performance changes when additional resources (e.g., CPU cores, schedulers, etc.) are added. We describe the scalability dimensions that the suite aims to examine and present its infrastructure and current set of benchmarks. We also report some limited set of performance results in order to show the capabilities of our suite.


types in languages design and implementation | 2011

A type and effect system for deadlock avoidance in low-level languages

Prodromos Gerakios; Nikolaos Papaspyrou; Konstantinos F. Sagonas

The possibility to run into a deadlock is an annoying and commonly occurring hazard associated with the concurrent execution of programs. In this paper we present a polymorphic type and effect system that can be used to dynamically avoid deadlocks, guided by information about the order of lock and unlock operations which is computed statically. In contrast to most other type-based approaches to deadlock freedom, our system does not insist that programs adhere to a strict lock acquisition order or use locking primitives in a block-structured way. Lifting these restrictions is primarily motivated by our desire to target low-level languages, such as C with pthreads, but it also allows our system to be directly applicable in optimizing compilers for high-level languages, such as Java. To show the effectiveness of our approach, we have also developed a tool that uses static analysis to instrument concurrent programs written in C/pthreads and then links these programs with a run-time system that avoids possible deadlocks. Although our tool is still in an early development stage, in the sense that currently its analysis only handles a limited class of programs, our benchmark results are very promising: they show that it is not only possible to avoid all deadlocks with a small run-time overhead, but also often achieve better throughput in highly concurrent programs by naturally reducing lock contention.


trends in functional programming | 2012

RELEASE: A High-Level Paradigm for Reliable Large-Scale Server Software

Olivier Boudeville; Francesco Cesarini; Natalia Chechina; Kenneth Lundin; Nikolaos Papaspyrou; Konstantinos F. Sagonas; Simon J. Thompson; Phil Trinder; Ulf Wiger

Erlang is a functional language with a much-emulated model for building reliable distributed systems. This paper outlines the RELEASE project, and describes the progress in the first six months. The project aim is to scale the Erlangs radical concurrency-oriented programming paradigm to build reliable general-purpose software, such as server-based systems, on massively parallel machines. Currently Erlang has inherently scalable computation and reliability models, but in practice scalability is constrained by aspects of the language and virtual machine. We are working at three levels to address these challenges: evolving the Erlang virtual machine so that it can work effectively on large scale multicore systems; evolving the language to Scalable Distributed SD Erlang; developing a scalable Erlang infrastructure to integrate multiple, heterogeneous clusters. We are also developing state of the art tools that allow programmers to understand the behaviour of massively parallel SD Erlang programs. We will demonstrate the effectiveness of the RELEASE approach using demonstrators and two large case studies on a Blue Gene.


Computer Standards & Interfaces | 2001

Denotational sematics of ANSI C

Nikolaos Papaspyrou

Abstract The semantics of C is described in the ANSI/ISO standard using natural language. This paper contains a brief summary, more descriptive than technical, of our research in specifying a complete and accurate formal semantics for ANSI C. We follow the denotational approach and divide the specification in three distinct phases: static, typing and dynamic semantics. Moreover, we have developed a direct implementation of the semantics, using the programming language Haskell. We argue that our formal specification results in a better understanding of the semantics of ANSI C and comment on its readability, precision, abstraction and applications.


Journal of Functional Programming | 2000

A study of evaluation order semantics in expressions with side effects

Nikolaos Papaspyrou; Dragan Maćoš

The presence of side effects in even a very simple language of expressions gives rise to a number of semantic questions. The issue of evaluation order becomes a crucial one and, unless a specific order is enforced, the language becomes non-deterministic. In this paper we study the denotational semantics of such a language under a variety of possible evaluation strategies, from simpler to more complex, concluding with unspecified evaluation order, unspecified order of side effects and the mechanism of sequence points that is particular to the ANSI C programming language. In doing so, we adopt a dialect of Haskell as a metalanguage, instead of mathematical notation, and use monads and monad transformers to improve modularity. In this way, only small modifications are required for each transition. The result is a better understanding of different evaluation strategies and a unified way of specifying their semantics. Furthermore, a significant step is achieved towards a complete and accurate semantics for ANSI C.


programming languages and operating systems | 2011

Dynamic deadlock avoidance in systems code using statically inferred effects

Prodromos Gerakios; Nikolaos Papaspyrou; Konstantinos F. Sagonas; Panagiotis Vekris

Deadlocks can have devastating effects in systems code. We have developed a type and effect system that provably avoids them and in this paper we present a tool that uses a sound static analysis to instrument multithreaded C programs and then links these programs with a run-time system that avoids possible deadlocks. In contrast to most other purely static tools for deadlock freedom, our tool does not insist that programs adhere to a strict lock acquisition order or use lock primitives in a block-structured way, thus it is appropriate for systems code and OS applications. We also report some very promising benchmark results which show that all possible deadlocks can automatically be avoided with only a small run-time overhead. More importantly, this is done without having to modify the original source program by altering the order of resource acquisition operations or by adding annotations.


types in languages design and implementation | 2010

Race-free and memory-safe multithreading: design and implementation in cyclone

Prodromos Gerakios; Nikolaos Papaspyrou; Konstantinos F. Sagonas

We present the design of a formal low-level multi-threaded language with advanced region-based memory management and synchronization primitives, where well-typed programs are memory safe and race free. In our language, regions and locks are combined in a single hierarchy and are subject to uniform ownership constraints imposed by a hierarchical structure: deallocating a region causes its sub-regions to be deallocated. Similarly, when a region is protected, then its sub-regions are also protected. We discuss aspects of the integration and implementation of the formal language within Cyclone and evaluate the performance of code produced by the modified Cyclone compiler against highly optimized C programs using atomic operations, pthreads, and OpenMP. Although our implementation is still in a preliminary stage, our results show that the performance overhead for guaranteed race freedom and memory safety is acceptable.


PLACES | 2010

A concurrent language with a uniform treatment of regions and locks

Prodromos Gerakios; Nikolaos Papaspyrou; Konstantinos F. Sagonas

A challenge for programming language research is to design and implement multi-threaded low-level languages providing static guarantees for memory safety and freedom from data races. Towards this goal, we present a concurrent language employing safe region-based memory management and hierarchical locking of regions. Both regions and locks are treated uniformly, and the language supports ownership transfer, early deallocation of regions and early release of locks in a safe manner.


Advances in Engineering Software | 1999

Web-based teaching in software engineering

Nikolaos Papaspyrou; Symeon Retalis; S. Efremidis; G Barlas; Emmanuel Skordalakis

Abstract The introduction of the new technologies of computer networks and hypermedia systems in education seems promising. However, only through experimentation can the effectiveness of these technologies be demonstrated. This was the main objective of the EONT project, in the process of which the National Technical University of Athens adapted an introductory course in Software Engineering to a novel enriched instructional delivery mode. The existing course material was supplemented by Web-based courseware, integrated into a Web-based novel networked learning environment. In this article we report on the results of our research and development, concerning this particular course, and discuss the results that were obtained from our evaluation study.


Mathematics in Computer Science | 2008

Efficient Intensional Implementation for Lazy Functional Languages

Angelos Charalambidis; Athanasios Grivas; Nikolaos Papaspyrou; Panos Rondogiannis

Abstract.The intensional transformation is a technique that can be used in order to eliminate higher-order functions from a functional program by introducing appropriate context-manipulation operators. The transformation can be applied to a significant class of higher-order programs and results in equivalent zero-order intensional programs that can be executed in a simple demand-driven way. Despite its simplicity, the transformation has never been seriously evaluated with respect to its efficiency and potential. Certain simple implementations of the technique have been performed, but questions regarding the merits of the method have remained inconclusive. In this paper we demonstrate that the transformation can be efficiently implemented by using what we call lazy activation records, namely activation records in which some entries are filled on-demand. An evaluation of our implementation demonstrates that the technique outperforms some of the most well-known functional programming systems, for the class of programs that can be transformed.

Collaboration


Dive into the Nikolaos Papaspyrou's collaboration.

Top Co-Authors

Avatar
Top Co-Authors

Avatar

Emmanuel Skordalakis

National Technical University of Athens

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Prodromos Gerakios

National Technical University of Athens

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Georgios Fourtounis

National Technical University of Athens

View shared research outputs
Top Co-Authors

Avatar

Eneia Nicolae Todoran

Technical University of Cluj-Napoca

View shared research outputs
Top Co-Authors

Avatar

Anastasios Koutoumanos

National Technical University of Athens

View shared research outputs
Top Co-Authors

Avatar

Michalis A. Papakyriakou

National Technical University of Athens

View shared research outputs
Top Co-Authors

Avatar
Researchain Logo
Decentralizing Knowledge