948 resultados para multicore programming
Resumo:
Conventional taught learning practices often experience difficulties in keeping students motivated and engaged. Video games, however, are very successful at sustaining high levels of motivation and engagement through a set of tasks for hours without apparent loss of focus. In addition, gamers solve complex problems within a gaming environment without feeling fatigue or frustration, as they would typically do with a comparable learning task. Based on this notion, the academic community is keen on exploring methods that can deliver deep learner engagement and has shown increased interest in adopting gamification – the integration of gaming elements, mechanics, and frameworks into non-game situations and scenarios – as a means to increase student engagement and improve information retention. Its effectiveness when applied to education has been debatable though, as attempts have generally been restricted to one-dimensional approaches such as transposing a trivial reward system onto existing teaching materials and/or assessments. Nevertheless, a gamified, multi-dimensional, problem-based learning approach can yield improved results even when applied to a very complex and traditionally dry task like the teaching of computer programming, as shown in this paper. The presented quasi-experimental study used a combination of instructor feedback, real time sequence of scored quizzes, and live coding to deliver a fully interactive learning experience. More specifically, the “Kahoot!” Classroom Response System (CRS), the classroom version of the TV game show “Who Wants To Be A Millionaire?”, and Codecademy’s interactive platform formed the basis for a learning model which was applied to an entry-level Python programming course. Students were thus allowed to experience multiple interlocking methods similar to those commonly found in a top quality game experience. To assess gamification’s impact on learning, empirical data from the gamified group were compared to those from a control group who was taught through a traditional learning approach, similar to the one which had been used during previous cohorts. Despite this being a relatively small-scale study, the results and findings for a number of key metrics, including attendance, downloading of course material, and final grades, were encouraging and proved that the gamified approach was motivating and enriching for both students and instructors.
Resumo:
At the University of Worcester we are continually striving to find new approaches to the learning and teaching of programming, to improve the quality of learning and the student experience. Over the past three years we have used the contexts of robotics, computer games, and most recently a study of Abstract Art to this end. This paper discusses our motivation for using Abstract Art as a context, details our principles and methodology, and reports on an evaluation of the student experience. Our basic tenet is that one can view the works of artists such as Kandinsky, Klee and Malevich as Object-Oriented (OO) constructions. Discussion of these works can therefore be used to introduce OO principles, to explore the meaning of classes, methods and attributes and finally to synthesize new works of art through Java code. This research has been conducted during delivery of an “Advanced OOP (Java)” programming module at final-year Undergraduate level, and during a Masters’ OO-Programming (Java) module. This allows a comparative evaluation of novice and experienced programmers’ learning. In this paper, we identify several instructional factors which emerge from our approach, and reflect upon the associated pedagogy. A Catalogue of ArtApplets is provided at the associated web-site.
Resumo:
We present an Integrated Environment suitable for learning and teaching computer programming which is designed for both students of specialised Computer Science courses, and also non-specialist students such as those following Liberal Arts. The environment is rich enough to allow exploration of concepts from robotics, artificial intelligence, social science, and philosophy as well as the specialist areas of operating systems and the various computer programming paradigms.
Resumo:
The Computing Division of the Business School at University College Worcester provides computing and information technology education to a range of undergraduate students. Topics include various approaches to programming, artificial intelligence, operating systems and digital technologies. Each of these has its own potentially conflicting requirements for a pedagogically sound programming environment. This paper describes an endeavor to develop a common programming paradigm across all topics. This involves the combined use of autonomous robots and Java simulations.
Resumo:
In this paper the problem of the evolution of an object-oriented database in the context of orthogonal persistent programming systems is addressed. We have observed two characteristics in that type of systems that offer particular conditions to implement the evolution in a semi-transparent fashion. That transparency can further be enhanced with the obliviousness provided by the Aspect-Oriented Programming techniques. Was conceived a meta-model and developed a prototype to test the feasibility of our approach. The system allows programs, written to a schema, access semi-transparently to data in other versions of the schema.
Resumo:
We explore the relationships between the construction of a work of art and the crafting of a computer program in Java and suggest that the structure of paintings and drawings may be used to teach the fundamental concepts of computer programming. This movement "from Art to Science", using art to drive computing, complements the common use of computing to inform art. We report on initial experiences using this approach with undergraduate and postgraduate students. An embryonic theory of the correspondence between art and computing is presented and a methodology proposed to develop this project further.
Resumo:
We present an IP-based nonparametric (revealed preference) testing procedure for rational consumption behavior in terms of general collective models, which include consumption externalities and public consumption. An empirical application to data drawn from the Russia Longitudinal Monitoring Survey (RLMS) demonstrates the practical usefulness of the procedure. Finally, we present extensions of the testing procedure to evaluate the goodness-of- t of the collective model subject to testing, and to quantify and improve the power of the corresponding collective rationality tests.
Resumo:
Maternal obesity has been shown to increase the risk for adverse reproductive health outcomes such as gestational diabetes, hypertension, and preeclampsia. Moreover, several studies have indicated that overnutrition and maternal obesity adversely program the development of offspring by predisposing them to obesity and other chronic diseases later in life. The exact molecular mechanisms leading to developmental programming are not known, but it has recently been suggested that obesity-related low-grade inflammation, gut microbiota and epigenetic gene regulation (in particularly DNA methylation) participate in the developmental programming phenomenon. The aim of this thesis was to evaluate the effect of diet, dietary counseling and probiotic intervention during pregnancy in endorsing favorable developmental programming. The study population consisted of 256 mother-child pairs participating in a prospective, double-blinded dietary counselling and probiotic intervention (Lactobacillus rhamnosus GG and Bifidobacterium lactis Bb12) NAMI (Nutrition, Allergy, Mucosal immunology and Intestinal microbiota) study. Further overweight women were recruited from maternal welfare clinics in the area of Southwest Finland and from the prenatal outpatient clinic at Turku University Hospital. Dietary counseling was aimed to modify women’s dietary intake to comply with the recommended intake for pregnant women. Specifically, counseling aimed to affect the type of fat consumed and to increase the amount of fiber in the women’s diets. Leptin concentration was used as a marker for obesity-related low-grade inflammation, antioxidant vitamin status as an efficiency marker for dietary counselling and epigenetic DNA methylation of obesity related genes as a marker for probiotics influence. Results revealed that dietary intake may modify obesity-associated low-grade inflammation as measured by serum leptin concentration. Specifically, dietary fiber intake may lower leptin concentration in women, whereas the intakes of saturated fatty acids and sucrose have an opposite effect. Neither dietary counselling nor probiotic intervention modified leptin concentration in women, but probiotics tended to increase children’s leptin concentration. Dietary counseling was an efficient tool for improving antioxidant vitamin intake in women, which was reflected in the breast milk vitamin concentration. Probiotic intervention affected DNA methylation of dozens of obesity and weight gain related genes both in women and their children. Altogether these results indicate that dietary components, dietary counseling and probiotic supplementation during pregnancy may modify the intrauterine environment towards favorable developmental programming.
Resumo:
While programming in a relational framework has much to offer over the functional style in terms of expressiveness, computing with relations is less efficient, and more semantically troublesome. In this paper we propose a novel blend of the functional and relational styles. We identify a class of "causal relations", which inherit some of the bi-directionality properties of relations, but retain the efficiency and semantic foundations of the functional style.
Resumo:
Exogenous androgenic steroids applied to pregnant sheep programmes a PCOS-like phenotype in female offspring. Via ultrasound guidance we applied steroids directly to ovine fetuses at d62 and d82 of gestation, and examined fetal (day 90 gestation) and postnatal (11 months old) pancreatic structure and function. Of three classes of steroid agonists applied (androgen - Testosterone propionate (TP), estrogen - Diethystilbesterol (DES) and glucocorticoid - Dexamethasone (DEX)), only androgens (TP) caused altered pancreatic development. Beta cell numbers were significantly elevated in prenatally androgenised female fetuses (P=0.03) (to approximately the higher numbers found in male fetuses), whereas alpha cell counts were unaffected, precipitating decreased alpha:beta cell ratios in the developing fetal pancreas (P=0.001), sustained into adolescence (P=0.0004). In adolescence basal insulin secretion was significantly higher in female offspring from androgen-excess pregnancies (P=0.045), and an exaggerated, hyperinsulinaemic response to glucose challenge (P=0.0007) observed, whereas prenatal DES or DEX treatment had no effects upon insulin secretion. Postnatal insulin secretion correlated with beta cell numbers (P=0.03). We conclude that the pancreas is a primary locus of androgenic stimulation during development, giving rise to postnatal offspring whose pancreas secreted excess insulin due to excess beta cells in the presence of a normal number of alpha cells.
Resumo:
Oocytes are arrested for long periods of time in the prophase of the first meiotic division (prophase I). As chromosome condensation poses significant constraints to gene expression, the mechanisms regulating transcriptional activity in the prophase I-arrested oocyte are still not entirely understood. We hypothesized that gene expression during the prophase I arrest is primarily epigenetically regulated. Here we comprehensively define the Drosophila female germ line epigenome throughout oogenesis and show that the oocyte has a unique, dynamic and remarkably diversified epigenome characterized by the presence of both euchromatic and heterochromatic marks. We observed that the perturbation of the oocyte's epigenome in early oogenesis, through depletion of the dKDM5 histone demethylase, results in the temporal deregulation of meiotic transcription and affects female fertility. Taken together, our results indicate that the early programming of the oocyte epigenome primes meiotic chromatin for subsequent functions in late prophase I.
Resumo:
The persistence concern implemented as an aspect has been studied since the appearance of the Aspect-Oriented paradigm. Frequently, persistence is given as an example that can be aspectized, but until today no real world solution has applied that paradigm. Such solution should be able to enhance the programmer productivity and make the application less prone to errors. To test the viability of that concept, in a previous study we developed a prototype that implements Orthogonal Persistence as an aspect. This first version of the prototype was already fully functional with all Java types including arrays. In this work the results of our new research to overcome some limitations that we have identified on the data type abstraction and transparency in the prototype are presented. One of our goals was to avoid the Java standard idiom for genericity, based on casts, type tests and subtyping. Moreover, we also find the need to introduce some dynamic data type abilities. We consider that the Reflection is the solution to those issues. To achieve that, we have extended our prototype with a new static weaver that preprocesses the application source code in order to introduce changes to the normal behavior of the Java compiler with a new generated reflective code.
Resumo:
Applications are subject of a continuous evolution process with a profound impact on their underlining data model, hence requiring frequent updates in the applications' class structure and database structure as well. This twofold problem, schema evolution and instance adaptation, usually known as database evolution, is addressed in this thesis. Additionally, we address concurrency and error recovery problems with a novel meta-model and its aspect-oriented implementation. Modern object-oriented databases provide features that help programmers deal with object persistence, as well as all related problems such as database evolution, concurrency and error handling. In most systems there are transparent mechanisms to address these problems, nonetheless the database evolution problem still requires some human intervention, which consumes much of programmers' and database administrators' work effort. Earlier research works have demonstrated that aspect-oriented programming (AOP) techniques enable the development of flexible and pluggable systems. In these earlier works, the schema evolution and the instance adaptation problems were addressed as database management concerns. However, none of this research was focused on orthogonal persistent systems. We argue that AOP techniques are well suited to address these problems in orthogonal persistent systems. Regarding the concurrency and error recovery, earlier research showed that only syntactic obliviousness between the base program and aspects is possible. Our meta-model and framework follow an aspect-oriented approach focused on the object-oriented orthogonal persistent context. The proposed meta-model is characterized by its simplicity in order to achieve efficient and transparent database evolution mechanisms. Our meta-model supports multiple versions of a class structure by applying a class versioning strategy. Thus, enabling bidirectional application compatibility among versions of each class structure. That is to say, the database structure can be updated because earlier applications continue to work, as well as later applications that have only known the updated class structure. The specific characteristics of orthogonal persistent systems, as well as a metadata enrichment strategy within the application's source code, complete the inception of the meta-model and have motivated our research work. To test the feasibility of the approach, a prototype was developed. Our prototype is a framework that mediates the interaction between applications and the database, providing them with orthogonal persistence mechanisms. These mechanisms are introduced into applications as an {\it aspect} in the aspect-oriented sense. Objects do not require the extension of any super class, the implementation of an interface nor contain a particular annotation. Parametric type classes are also correctly handled by our framework. However, classes that belong to the programming environment must not be handled as versionable due to restrictions imposed by the Java Virtual Machine. Regarding concurrency support, the framework provides the applications with a multithreaded environment which supports database transactions and error recovery. The framework keeps applications oblivious to the database evolution problem, as well as persistence. Programmers can update the applications' class structure because the framework will produce a new version for it at the database metadata layer. Using our XML based pointcut/advice constructs, the framework's instance adaptation mechanism is extended, hence keeping the framework also oblivious to this problem. The potential developing gains provided by the prototype were benchmarked. In our case study, the results confirm that mechanisms' transparency has positive repercussions on the programmer's productivity, simplifying the entire evolution process at application and database levels. The meta-model itself also was benchmarked in terms of complexity and agility. Compared with other meta-models, it requires less meta-object modifications in each schema evolution step. Other types of tests were carried out in order to validate prototype and meta-model robustness. In order to perform these tests, we used an OO7 small size database due to its data model complexity. Since the developed prototype offers some features that were not observed in other known systems, performance benchmarks were not possible. However, the developed benchmark is now available to perform future performance comparisons with equivalent systems. In order to test our approach in a real world scenario, we developed a proof-of-concept application. This application was developed without any persistence mechanisms. Using our framework and minor changes applied to the application's source code, we added these mechanisms. Furthermore, we tested the application in a schema evolution scenario. This real world experience using our framework showed that applications remains oblivious to persistence and database evolution. In this case study, our framework proved to be a useful tool for programmers and database administrators. Performance issues and the single Java Virtual Machine concurrent model are the major limitations found in the framework.
Resumo:
Processors with large numbers of cores are becoming commonplace. In order to utilise the available resources in such systems, the programming paradigm has to move towards increased parallelism. However, increased parallelism does not necessarily lead to better performance. Parallel programming models have to provide not only flexible ways of defining parallel tasks, but also efficient methods to manage the created tasks. Moreover, in a general-purpose system, applications residing in the system compete for the shared resources. Thread and task scheduling in such a multiprogrammed multithreaded environment is a significant challenge. In this thesis, we introduce a new task-based parallel reduction model, called the Glasgow Parallel Reduction Machine (GPRM). Our main objective is to provide high performance while maintaining ease of programming. GPRM supports native parallelism; it provides a modular way of expressing parallel tasks and the communication patterns between them. Compiling a GPRM program results in an Intermediate Representation (IR) containing useful information about tasks, their dependencies, as well as the initial mapping information. This compile-time information helps reduce the overhead of runtime task scheduling and is key to high performance. Generally speaking, the granularity and the number of tasks are major factors in achieving high performance. These factors are even more important in the case of GPRM, as it is highly dependent on tasks, rather than threads. We use three basic benchmarks to provide a detailed comparison of GPRM with Intel OpenMP, Cilk Plus, and Threading Building Blocks (TBB) on the Intel Xeon Phi, and with GNU OpenMP on the Tilera TILEPro64. GPRM shows superior performance in almost all cases, only by controlling the number of tasks. GPRM also provides a low-overhead mechanism, called “Global Sharing”, which improves performance in multiprogramming situations. We use OpenMP, as the most popular model for shared-memory parallel programming as the main GPRM competitor for solving three well-known problems on both platforms: LU factorisation of Sparse Matrices, Image Convolution, and Linked List Processing. We focus on proposing solutions that best fit into the GPRM’s model of execution. GPRM outperforms OpenMP in all cases on the TILEPro64. On the Xeon Phi, our solution for the LU Factorisation results in notable performance improvement for sparse matrices with large numbers of small blocks. We investigate the overhead of GPRM’s task creation and distribution for very short computations using the Image Convolution benchmark. We show that this overhead can be mitigated by combining smaller tasks into larger ones. As a result, GPRM can outperform OpenMP for convolving large 2D matrices on the Xeon Phi. Finally, we demonstrate that our parallel worksharing construct provides an efficient solution for Linked List processing and performs better than OpenMP implementations on the Xeon Phi. The results are very promising, as they verify that our parallel programming framework for manycore processors is flexible and scalable, and can provide high performance without sacrificing productivity.
Resumo:
É do conhecimento geral de que, hoje em dia, a tecnologia evolui rapidamente. São criadas novas arquitecturas para resolver determinadas limitações ou problemas. Por vezes, essa evolução é pacífica e não requer necessidade de adaptação e, por outras, essa evolução pode Implicar mudanças. As linguagens de programação são, desde sempre, o principal elo de comunicação entre o programador e o computador. Novas linguagens continuam a aparecer e outras estão sempre em desenvolvimento para se adaptarem a novos conceitos e paradigmas. Isto requer um esforço extra para o programador, que tem de estar sempre atento a estas mudanças. A Programação Visual pode ser uma solução para este problema. Exprimir funções como módulos que recebem determinado Input e retomam determinado output poderá ajudar os programadores espalhados pelo mundo, através da possibilidade de lhes dar uma margem para se abstraírem de pormenores de baixo nível relacionados com uma arquitectura específica. Esta tese não só mostra como combinar as capacidades do CeII/B.E. (que tem uma arquitectura multiprocessador heterogénea) com o OpenDX (que tem um ambiente de programação visual), como também demonstra que tal pode ser feito sem grande perda de performance. ABSTRACT; lt is known that nowadays technology develops really fast. New architectures are created ln order to provide new solutions for different technology limitations and problems. Sometimes, this evolution is pacific and there is no need to adapt to new technologies, but things also may require a change every once ln a while. Programming languages have always been the communication bridge between the programmer and the computer. New ones keep coming and other ones keep improving ln order to adapt to new concepts and paradigms. This requires an extra-effort for the programmer, who always needs to be aware of these changes. Visual Programming may be a solution to this problem. Expressing functions as module boxes which receive determined Input and return determined output may help programmers across the world by giving them the possibility to abstract from specific low-level hardware issues. This thesis not only shows how the CeII/B.E. (which has a heterogeneous multi-core architecture) capabilities can be combined with OpenDX (which has a visual programming environment), but also demonstrates that lt can be done without losing much performance.