Session details: Safe programming languages for the multicore era (I)

2014 ◽  
Vol 34 (3) ◽  
Author(s):  
Brad Moore
Author(s):  
Eduard Staniloiu ◽  
Razvan Nitu ◽  
Robert Aron ◽  
Razvan Rughinis

2021 ◽  
Vol 43 (3) ◽  
pp. 1-50
Author(s):  
Lun Liu ◽  
Todd Millstein ◽  
Madanlal Musuvathi

Modern “safe” programming languages follow a design principle that we call safety by default and performance by choice . By default, these languages enforce important programming abstractions, such as memory and type safety, but they also provide mechanisms that allow expert programmers to explicitly trade some safety guarantees for increased performance. However, these same languages have adopted the inverse design principle in their support for multithreading. By default, multithreaded programs violate important abstractions, such as program order and atomic access to individual memory locations to admit compiler and hardware optimizations that would otherwise need to be restricted. Not only does this approach conflict with the design philosophy of safe languages, but very little is known about the practical performance cost of providing a stronger default semantics. In this article, we propose a safe-by-default and performance-by-choice multithreading semantics for safe languages, which we call volatile -by-default . Under this semantics, programs have sequential consistency (SC) by default, which is the natural “interleaving” semantics of threads. However, the volatile -by-default design also includes annotations that allow expert programmers to avoid the associated overheads in performance-critical code. We describe the design, implementation, optimization, and evaluation of the volatile -by-default semantics for two different safe languages: Java and Julia. First, we present V BD-HotSpot and V BDA-HotSpot, modifications of Oracle’s HotSpot JVM that enforce the volatile -by-default semantics on Intel x86-64 hardware and ARM-v8 hardware. Second, we present S C-Julia, a modification to the just-in-time compiler within the standard Julia implementation that provides best-effort enforcement of the volatile -by-default semantics on x86-64 hardware for the purpose of performance evaluation. We also detail two different implementation techniques: a baseline approach that simply reuses existing mechanisms in the compilers for handling atomic accesses, and a speculative approach that avoids the overhead of enforcing the volatile -by-default semantics until there is the possibility of an SC violation. Our results show that the cost of enforcing SC is significant but arguably still acceptable for some use cases today. Further, we demonstrate that compiler optimizations as well as programmer annotations can reduce the overhead considerably.


1992 ◽  
Vol 139 (4) ◽  
pp. 335
Author(s):  
R.F. Hobson ◽  
J.D. Hoskin ◽  
J.L. Simmons ◽  
R.W. Spilsbury

Author(s):  
A. A. Nedbaylov

The calculations required in project activities for engineering students are commonly performed in electronic spreadsheets. Practice has shown that utilizing those calculations could prove to be quite difficult for students of other fields. One of the causes for such situation (as well as partly for problems observed during Java and C programming languages courses) lies in the lack of a streamlined distribution structure for both the source data and the end results. A solution could be found in utilizing a shared approach for information structuring in spreadsheet and software environment, called “the Book Method”, which takes into account the engineering psychology issues regarding the user friendliness of working with electronic information. This method can be applied at different levels in academic institutions and at teacher training courses.


Author(s):  
Petar Halachev ◽  
Aleksandra Todeva ◽  
Gergana Georgieva ◽  
Marina Jekova

he report explores and analyzes the application of the most popular programming languages from different organizations: GitHub; Stackoverflow; the TIOBE's Community index. The main client technologies: HTML; CSS; JavaScript; Typescript are presented and analysed. Features are characterized and the advantages and the disadvantages of the server technologies are described: Java; PHP; Python; Ruby. The application areas for web site development technologies have been defined. The creation of a quality web site is a complex and complicated process, but by observing some guidelines and recommendations in the work process can help to select the tools and the technologies in its design and development.


2014 ◽  
Vol 5 (2) ◽  
pp. 778-789
Author(s):  
Hassan Nouri Al-Obaidi ◽  
Ali A. Rashead Al-Azawy

Current research presents a visual-computational tool to design and investigate round electrostatic lenses in sense of analysis procedure. The finite elements methods is adopted to find the electrostatic potential in the lens region. Laplace’s equation is first replaced by a certain functional which physically represent the electric energy stored in the electric field. This functional is then minimized at each mesh point with respect to the nearest eight ones. This minimization process is proved to be entirely equivalent to solving Laplace’s equation. The requirement that the functional being minimized is then yields a set of nine point equations which inter relate the potentials at adjacent mesh points. Finally this set of equations is solved to find the electrostatic potential at each mesh point in the region of the lens under consideration. The procedure steps mention above are coded to program written in visual basic. Hence an interface tool for analyzing and designing electrostatic lenses has been built up. Designing results proved that the introduced tools has an excellent outputs in comparison with the others written in not visual programming languages. Furthermore it easier for researchers and designer to use such a tool over their counterpart ones.


Sign in / Sign up

Export Citation Format

Share Document