58 research outputs found
HPC-GAP: engineering a 21st-century high-performance computer algebra system
Symbolic computation has underpinned a number of key advances in Mathematics and Computer Science. Applications are typically large and potentially highly parallel, making them good candidates for parallel execution at a variety of scales from multi-core to high-performance computing systems. However, much existing work on parallel computing is based around numeric rather than symbolic computations. In particular, symbolic computing presents particular problems in terms of varying granularity and irregular task sizes thatdo not match conventional approaches to parallelisation. It also presents problems in terms of the structure of the algorithms and data.
This paper describes a new implementation of the free open-source GAP computational algebra system that places parallelism at the heart of the design, dealing with the key scalability and cross-platform portability problems. We provide three system layers that deal with the three most important classes of hardware: individual shared memory
multi-core nodes, mid-scale distributed clusters of (multi-core) nodes, and full-blown HPC systems, comprising large-scale tightly-connected networks of multi-core nodes. This requires us to develop new cross-layer programming abstractions in the form of new domain-specific skeletons that allow us to seamlessly target different hardware levels. Our results show that, using our approach, we can achieve good scalability and speedups for two realistic exemplars, on high-performance systems comprising up to 32,000 cores, as well as on ubiquitous multi-core systems and distributed clusters. The work reported here paves the way towards full scale exploitation of symbolic computation by high-performance computing systems, and we demonstrate the potential with two major case studies
Влияние супероксидного анион-радикала и глутатиона на липолиз в адипоцитах крыс при окислительном стрессе, индуцированном аллоксаном
Установлено, что в адипоцитах крыс при действии аллоксана развивается окислительный стресс, сопровождающийся увеличением спонтанного липолиза и ингибированием стимулированного агонистом beta2-адренорецепторов изопротеренолом липолиза. На основании полученных данных сделан вывод о влиянии активных форм кислорода, в частности супероксидного анион-радикала, и системы глутатиона на молекулярные механизмы изменения интенсивности липолиза в адипоцитах крыс в условиях окислительного стресса, индуцированного аллоксаном
Status of Biodiversity in the Baltic Sea
The brackish Baltic Sea hosts species of various origins and environmental tolerances. These immigrated to the sea 10,000 to 15,000 years ago or have been introduced to the area over the relatively recent history of the system. The Baltic Sea has only one known endemic species. While information on some abiotic parameters extends back as long as five centuries and first quantitative snapshot data on biota (on exploited fish populations) originate generally from the same time, international coordination of research began in the early twentieth century. Continuous, annual Baltic Sea-wide long-term datasets on several organism groups (plankton, benthos, fish) are generally available since the mid-1950s. Based on a variety of available data sources (published papers, reports, grey literature, unpublished data), the Baltic Sea, incl. Kattegat, hosts altogether at least 6,065 species, including at least 1,700 phytoplankton, 442 phytobenthos, at least 1,199 zooplankton, at least 569 meiozoobenthos, 1,476 macrozoobenthos, at least 380 vertebrate parasites, about 200 fish, 3 seal, and 83 bird species. In general, but not in all organism groups, high sub-regional total species richness is associated with elevated salinity. Although in comparison with fully marine areas the Baltic Sea supports fewer species, several facets of the system's diversity remain underexplored to this day, such as micro-organisms, foraminiferans, meiobenthos and parasites. In the future, climate change and its interactions with multiple anthropogenic forcings are likely to have major impacts on the Baltic biodiversity
Adaptive Locks: Combining Transactions and Locks for Efficient Concurrency
Transactional memory is being advanced as an alternative to traditional lock-based synchronization for concurrent programming. Transactional memory simplifies the programming model and maximizes concurrency. At the same time, transactions can suffer from interference that causes them to often abort, from heavy overheads for memory accesses, and from expressiveness limitations (e.g., for I/O operations). In this paper we propose an adaptive locking technique that dynamically observes whether a critical section would be best executed transactionally or while holding a mutex lock. The critical new elements of our approach include the adaptivity logic and cost-benefit analysis, a low-overhead implementation of statistics collection and adaptive locking in a full C compiler, and an exposition of the effects on the programming model. In experiments with both micro- and macro-benchmarks we found adaptive locks to consistently match or outperform the better of the two component mechanisms (mutexes or transactions). Compared to either mechanism alone, adaptive locks often provide 3-to-10x speedups. Additionally, adaptive locks simplify the programming model by reducing the need for fine-grained locking: with adaptive locks, the programmer can specify coarse-grained locking annotations and often achieve fine-grained locking performance due to the transactional memory mechanisms. 1
Automated Delegation is a Viable Alternative to Multiple Inheritance in Class Based Languages
Multiple inheritance is still a controversial feature in traditional object-oriented languages, as evidenced by its omission from such languages as Modula-3, Objective C and Java. Nonetheless, users of such languages often complain about having to work around the absence of multiple inheritance. Automating delegation, in combination with a multiple subtyping mechanism, provides many of the same benefits as multiple inheritance, yet sidesteps most of the associated problems. This simple feature could satisfy both the designers and the users of class based object oriented languages. In this paper, we discuss why automated delegation is desirable. We also present Jamie, a freeware preprocessor-based extension to Java that offers such an alternative
- …