Paolo Rocchi
email: procchi@luiss.it

Questioning Two Myths in Computer Science Education

Keywords: Theories on computing, computer technology, computer science education, strategies of research

des établissements d'enseignement et de recherche français ou étrangers, des laboratoires publics ou privés.

Introduction

In the preliminary stage, we specify that the terms 'computer science', 'information and communication technology (ICT)', 'computing' and 'informatics' will be used as synonyms hereunder.

Since the birth of the digital age, experts made significant efforts to divulge and explain the technology of systems and their use. It seems that pioneering articles appeared in the early 1950s [START_REF] Hopper | The education of a computer[END_REF].

By the mid-1960s computer science education (CSE) became a very active area due to the wide spread success of computers in businesses and organizations. There was great demand for skilled practitioners and the courses on ICT offered vital services in Western economies. Several research projects started in order to improve didactics of informatics. Also companies and businesses intervened to suggest amelioration of the contents to be taught.

The amount of contributions presented in the last half a century is simply immense. One could quote the hundreds of academic and professional societies on CSE; the thousands of books, publications, and journals specialized on computer education and not specialized; the thousands of occasional and regular events -see the analysis of SIGCSE symposia in [START_REF] Valentine | CS educational research: a meta-analysis of SIGCSE technical symposium proceedings[END_REF]. We put forward two remarks upon this enormous global effort.

1) The vivid activity of CSE researchers and the large amount of contributions do not provide proportionally satisfactory outcomes so far. Sometimes experts give the impression of talking around the same topics [START_REF] Huggins | Universities failing to provide adequate background DP[END_REF]; the Royal Society talks about the 'vicious circle' of modern computer science education [START_REF] Vv | Shut down or restart? The way forward for computing in UK schools -The Royal Society Education Section[END_REF]. Pears and others express an opinion amply shared: "decades of active research on the teaching of introductory programming has had limited effect on classroom practice" [5]. Education of software engineering has raised complaints for years [START_REF] Pears | A Survey of Literature on the Teaching of Introductory Programming -Working Group Reports on ITCSE on Innovation and Technology in Computer Science Education[END_REF]. Various studies attempting to delineate core competencies and skills in informatics provide uncertain guidelines rather than unequivocal answers [START_REF] Ghezzi | The challenges of software engineering education -Proc. of the Intl[END_REF] [8] [START_REF] Dagienė | Informatics education for new millennium learners[END_REF].

2)

The considerable energy spent to tackle educational issues in informatics cannot be compared with other disciplines. Nothing like this occurs elsewhere.

Researchers are not so busy in discussing curricula, roles, skills and professional profiles in other technical areas. One could ask: 'Why is there such a great difference between didactics of computing and didactics of other scientific fields?'

First Myth

Informatics appears as a rapidly changing discipline, which places considerable pressure on CSE and several commentators ascribe the responsibility of the difficulties, which we have pinpointed in 1) and 2), to the subject matter. The following passage summarizes an amply shared viewpoint:

"Computing has changed dramatically over that time in ways that have a profound effect on curriculum design and pedagogy." [START_REF] Kereki | Work in progress: transversal competencies contributions to computer science 1 course[END_REF] This common judgment unites the vast community of ICT educators whose inferential reasoning can be subdivided into two sentences:

"Informatics is a novel and fast evolving discipline. Hence, the pedagogy of informatics meets severe obstacles." [START_REF] Hopper | The education of a computer[END_REF] The first line is the premise to the second line which exhibits the conclusion. Statement (1) could be defined as the statement of a theorem including the hypothesis and the thesis. Speaking in general, theorems are to be demonstrated; instead nobody substantiates (1) so far; nobody shows how the close necessarily follows from the premise. so far. Authors cite the various versions of (1) without any logical proof [11] [12]. This common belief seems a dogma rather than a statement sustained by logical reasoning.

The first part (i.e. "Informatics is a novel and fast evolving discipline") is established on the basis of facts and is true beyond any doubt. However the end point (i.e. "hence the pedagogy of informatics meets severe obstacles") is not so evident.

A proof is required to demonstrate a theorem; an example is sufficient to disprove it. Here we present two examples to show how assertion (1) is arbitrary. In particular, we shall examine two innovative and fast evolving scientific sectors which do not raise severe educational problems.

A] In the late 1960s, driven by the growing public awareness of a need for action in addressing environmental problems and the arrival of more severe laws and regulations, environmental science (ES) came alive as an active field of scientific investigation. ES includes instructions in biology, chemistry, physics, geosciences, climatology, statistics, and mathematical modeling [START_REF] Tucker | Computer science and engineering: the discipline and its impact -In Handbook of Computer Science and Engineering[END_REF]. One could deem environmental science more complicated than informatics and in addition ES is fast changing because of the novel and multi-disciplinary technologies required to investigate and to solve large-scale environmental problems. However, educators in environmental science are not so pressed by educational problems as teachers in computing. Prerequisites to ES courses are the lessons of physics, chemistry, biology, geography and other matters. Specialized topics are placed after the introductory lessons. Environmental phenomena are often large scale yet the ES laboratory does not seem as awkward and tricky as computing drilling. Teachers update the courses without special struggle [START_REF] Enger | Environmental Science -McGraw-Hill[END_REF]. B] Environmental science probably seems far different in kind and somewhat incomparable to informatics. The second sector -electronics -is closer to computer systems and probably the reader feels it as a more fitting example.

The advances in the development of the electronic market appears remarkable even to common people. It may be said that electronics drags the advance of computer science [START_REF] Elstgeest | Environmental Science in the Primary Curriculum[END_REF]. Despite its rapid growth and evolution, the study of electrical devices does not result in pedagogical issues similar to those occurring in computing. Usually, the courses of electronics begin with fundamental principles -say Faraday's law of induction, Kirchhoff's equations, the Ohm's law, the Maxwell's formulas etc. -and proceed toward specialized topics.

Electronics does not give rise to severe educational problems regarding the subject contents. Teachers are not so much stressed to 'find a way to present' a certain topic. Students do not undergo disorientation and a sense of groundlessness so frequent in computing. They progressively enrich their culture and arrive at precise professional competencies.

The Association for Computing Machinery (ACM), the Institute of Electrical and Electronics Engineers (IEEE) and other organizations published several reports for experts who prepare courses on computing. This vivid activity is absent in the electronic domain. No organization felt the need to promote the publication of curricula or guidelines similar to those cited above. Experts arrange and optimize the lessons in electronics as technology advances without special efforts.

The reader perhaps objects that informatics has developed so much that now we face different sub-disciplines. The ACM/IEEE Curricula [START_REF] Kereki | Work in progress: transversal competencies contributions to computer science 1 course[END_REF] holds: "The scope of what we call computing has broadened to the point that it is difficult to define it as a single discipline." [START_REF] Valentine | CS educational research: a meta-analysis of SIGCSE technical symposium proceedings[END_REF] One can reply that also electronic experts have inaugurated several new areas such as nanoelectronics, photonics, robotics, power electronics, quantum electronics, and spintronics which do not subvert the didactical curricula. New specialist subject matters substitute the obsolete ones or are appended at the bottom of the pedagogical pathways without great discussion [START_REF] Morton | Electronics: The Life Story of a Technology[END_REF]. The new topics give substance to new professional figures and do not raise lively debates comparable to the discussion occurring in CSE.

Concluding, the cases of electronics and environmental science make evident how an advanced and rapidly evolving technology does not oppose necessarily dramatic pedagogical difficulties. Statement (1) sounds like a generic and untrustworthy myth. Practical evidence demonstrates that statement (1) is false and results in repeated and prolonged misunderstandings.

Two Jobs

At this stage it is natural to ask the following question:

What is the substantial difference between computer science and electronics (and even environmental science) from the didactical viewpoint?

The answer appears to be self-evident as soon as one looks closely at the structure of the two disciplines.

Electronics has shared principles that guide and give order to the entire didactical process, no matter the process is running in a high school, a college or a university. Electronics is based on general laws, models, equations and universal properties that constitute its logical frame and inspire the didactical material. Instead, informatics does not have a solid theoretical frame of reference.

Factually "teachers need to know more than just their subject. They need to know the ways it can come to be understood, the ways it can be misunderstood, what counts as understanding: they need to know how individuals experience the subject" [START_REF] Shane | An improved approach to application-specific power electronics education: curriculum development[END_REF] And the theoretical basis of electronics provides the principal aid to the educators' complex activity. The fundamentals cast light into the entire area which one explains to students without extraordinary efforts. One can arrange the various topics and subtopics in a rather straightforward manner. A teacher can proceed from general statements to particular cases. By contrast, informatics is a science not equipped with an exhaustive and amply shared theoretical base. The courses of electronics may be defined as 'theory-driven,' informatics cannot be defined as such; instead usual courses of informatics are 'practice driven,' 'competency-driven,' 'example driven,' or 'programming driven. ' In consequence of fundamental theory shortage, researchers in computing education have a double job to do: they tackle the usual pedagogical issues and in addition they are required to compensate for the lack of a general and logical reference. Experts in CSE counterbalance the missing cultural basis, and arrange the subject contents and the targets. They also establish the importance of the various topics, the sequel of the lessons and their logical relationships. They take on several other 'structural' issues.

This double job becomes stressing in a particular manner when there is something to update. The change of a detail can result in dramatic consequences. One can quote the dispute about the substitution of the language Pascal with Java or C++ [START_REF] Laurillard | Rethinking University Teaching: A Framework for the Effective Use of Educational Technology -Routledge[END_REF]. By contrast, novelties do not overthrow the educational systems of electronics. Any didactical update complies with the theoretical order already established. If a technical solution, an instrument or a work method evolves, the didactical process is not completely redesigned but rather, just the intended part varies.

Educators of informatics -lacking an exhaustive theoretical frame -prevalently illustrate technical solutions. A teaching process -even if optimized and updatedturns out to be provisional when it is based on specialist topics because specialist solutions change. Only general principles can yield a reliable pedagogical pathway. Researchers on CSE spend most of their time with specialist topics that are transitory and cannot ensure a logical order to the overall matter. Hence, not only education specialists do a double job, in addition they are doomed to failure. They spend much energy but create doubtful cultural 'buildings'.

The lack of shared fundamentals yield lessons which often seem to exist only in response to a request for help; e.g. request for coding a program, for the use of spreadsheets, and emailing a message [START_REF] Abelson | The first-course conundrum[END_REF]. In other words, theoretical omission forces a teacher toward a 'service-orientated activity'. This somewhat obligatory didactical style emerges even in the introductory lessons [START_REF] Hatziapostolou | Promoting computer science programmers to potential students: 10 myths for computer science[END_REF]. The contrary occurs in electronics which is 'theory-driven'. Teachers spend several lessons explaining abstract statements and general equations. Practical skills are gained later.

Concluding, undisputable evidence shows how most significant difficulties in CSE do not derive from the fact that we teach a novel and fast evolving technology, but rather from the fact that informatics does not have a consistent theoretical basis and CSE cannot advance as a 'theory driven' activity.

Second Myth

Perhaps the reader challenges the ensuing sentences just mentioned:

 Informatics does not have a solid, theoretical frame of reference.  Informatics is a science not equipped with an exhaustive and amply shared theoretical base.  Informatics does not have a consistent theoretical basis. Several experts believe the contrary is true. They claim that computer science is assisted by a large set of abstract references. They cite the Turing theory, the Shannon theory, the theory of graphs etc. and conclude that computer science has a significant mathematical base. The common opinion upon the theoretical foundations of informatics can be summed up in the following terms:

Computer science has a large mathematical base. [START_REF] Huggins | Universities failing to provide adequate background DP[END_REF] This statement is right in the sense that computing has 'several' theoretical bases. However, when one examines each theory, one by one, he can remark that each formal construction gives support to a small technical area, and no theory covers the entire computer domain. For example, Shannon deliberately ignores semantics, and one cannot use the Shannon entropy to qualify the expressive power of a Web page. The various constructions are not connected either logically or causally or by shared characteristics, and thus do not constitute a consistent framework. The theories do not illustrate the body of computing as an organized description of the knowledge of the field.

It may happen that two or more theories revolve around a single subject matter and pursue different targets. For example, a variety of theoretical constructions treat the programming languages: the Turing theory explains imperative programming [START_REF] Bruce | Controversy on how to teach CS1: a discussion on the SIGCSE-members mailing list[END_REF]; functional programming has a theoretical basis in lambda calculus and combinatory logic [START_REF] Hoare | An axiomatic basis for computer programming[END_REF]; data base languages refer to relational algebra [START_REF] Hindley | Lambda-Calculus and Combinators: An Introduction[END_REF], and a special theory supports object-oriented programming [START_REF] Molková | Theory and Practice of Relational Algebra: Transforming Relational Algebra to SQL -Lambert[END_REF]. Some theories of computer science overlap and one begins by believing it is hard to say which model is more 'basic'. They are often designed with different goals in mind and are not in agreement with themselves. That is why, the numerous and unrelated conceptualizations do not provide a unified guideline to CSE experts.

A mathematical theory should have adept epistemic capabilities, that is to say it should elucidate the why, the when and the how of the phenomena under observation. Unfortunately a small theory -even if correct -has little explicative qualities because of its proper dimension, and in turn the sum of small theories says nothing or very little as the summation of zeros returns zero. Many CSE researchers have gone through this cultural void. The various attempts to ground a didactical pathway on abstract concepts has not yet gained much success [START_REF] Gunter | Theoretical Aspects of Object-Oriented Programming, Types, Semantics, and Language Design[END_REF]. Educators sometimes prefer to develop the lessons on the basis of practice and experience gained. The students are trained to build knowledge by themselves and actively search for solutions to the problems they experience.

One can reasonably conclude that informatics has several mathematical theories but not a single theory, nor the entire set of theories is able to provide the exhaustive logical framework needed by educators. Practical evidence shows how statement (3) is false, and the lack of thorough support can but provoke the didactical difficulties discussed in this paper.

Practical Development and Conclusion

This paper is an attempt to illustrate how the idea that 'Computer science has a large mathematical base' has not ground and it paves the way to the following deceptive notion 'Informatics is a novel and fast evolving discipline. Hence, the pedagogy of informatics meets severe obstacles'. The two sentences are nothing more than false legends whereas the small and pretentious theories put forward in the computer domain are the authentic root-causes of most problems which current CSE literature is discussing. Hence -in our opinion -researchers should enhance their strategies. They should pay greater attention to the investigations conducted to clarify the fundamentals of CS. They should stimulate and even offer assistance to theorists as frequently occurred in the past with success in various domains.

Computer science as a discipline has always struggled with its identity [START_REF] Golshani | A logical foundation for an information engineering curriculum[END_REF][27] and CSE are able to provide a significant contribution. For example, the UK Open University has recently inaugurated a debate on the multifaceted notion of information [START_REF] Denning | The science in computer science[END_REF].

Lethbridge [START_REF]Proc. of Workshop 'The Difference that Makes a Difference[END_REF] claims: "Many important ideas in science and technology have been developed and refined by educators, attempting to determine how to explain complex concepts."

Theories are not carved in stone. Old theories may be replaced by new theories that have broader scopes than the old ones. Sometimes an old construction is not to be thrown away; it can just be viewed as an approximation -applicable in certain restricted circumstances -of the new more comprehensive theory. It is therefore, quite reasonable to think that CSE should bring greater attention to innovative visions and theoretical proposals that outline a comprehensive frame [START_REF] Lethbridge | Improving software practice through education: challenges and future trends[END_REF][31] [START_REF] Floridi | Philosophy and Computing: An Introduction -Routledge[END_REF]. It is worth mentioning that some ideas have been already used in education with success [START_REF] Rocchi | Logic of Analog and Digital Machines -Nova Science[END_REF].

In conclusion, the argument discussed in these pages is far from being abstract and avulse from practical consequence; it entails behaviors that are really innovative. If researchers in education continue to keep an uncertain opinion on the necessary support which an exhaustive theory is called to provide, the present studies on CSE risk repeating the history of Darwinism and creationism. It all transforms into an enormous amount of dissertations, books, ideas, and discussions, whose logic and argumentation provide moral or material satisfaction to authors and their followers. However, this ocean of relentless activity in CSE will steadily evaporate, exposing the abyss that separates the digital competencies and curricula, which the authors are able to delineate, from the real world needs.


David Beniamine

Guillaume Huard

Moca: An ecient Memory trace collection system

Keywords: Moca, Performance evaluation, Memory, Memory traces, NUMA, Cache Moca, Evaluation de performances, Mémoire, Trace mémoire, NUMA, Cache

In modern High Performance Computing architectures, the memory subsystem is a common performance bottleneck. When optimizing an application, the developer has to study its memory access patterns and adapt accordingly the algorithms and data structures it uses. The objective is twofold: on one hand, it is necessary to avoid missuses of the memory hierarchy such as false sharing of cache lines or contention in a NUMA interconnect. On the other hand, it is essential to take advantage of the various cache levels and the memory hardware prefetcher.

Still, most proling tools focus on CPU metrics. The few of them able to provide an overview of the memory patterns involved by the execution rely on hardware instrumentation mechanisms and have two drawbacks. The rst one is that they are based on sampling which precision is limited by hardware capabilities. The second one is that they trace a subset of all the memory accesses, usually the most frequent, without information about the other ones.

In this study we present Moca an ecient tool for the collection of complete spatiotemporal memory traces. It is based on a Linux kernel module and provides a coarse grained trace of a superset of all the memory accesses performed by an application over its addressing space during the time of its execution. The overhead of Moca is reasonable when taking into account the fact that it is able to collect complete traces which are also more precise than the ones collected by comparable tools.

Introduction

In High Performance Computing the memory subsystem is often a performance bottleneck.

Using eciently this memory subsystem can be extremely complex, indeed the developer has to take into account both the cache hierarchy and hardware mechanisms such as the memory prefetcher. It gets even more complex with Non Uniform Memory Access machines in which data location in physical memory impacts the accesses latency and contention issues arise [START_REF] Drepper | What every programmer should know about memory[END_REF].

Most eorts about memory performance optimizations at software level consists on tools such as NUMA Balancing [START_REF] Corbet | AutoNUMA: the other approach to NUMA scheduling[END_REF]. These tools automatically moves pages of data in the physical memory, trying to keep them as close as possible from the threads that use them. Such optimizations can improve signicantly the memory performances as they reduce the number of remote accesses. Still this cannot x the application when its algorithms and data structures do not make a proper use of memory resources.

For instance, if all the threads of an application access to the same memory page, whatever the page mapping is, this will result in remote accesses from all NUMA nodes but one. The only way to x this kind of issues is to rewrite a part of the application code in order to take into account these unbalanced memory accesses. This is why tools that can help the developer understand the memory access patterns performed by his application are of utter importance for performance optimizations.

Analysis tools such as Vtune [START_REF] Reinders | VTune performance analyzer essentials[END_REF] and HPC-Toolkit [START_REF] Adhianto | HPCTOOLKIT: tools for performance analysis of optimized parallel programs[END_REF] have been developed to help the programmer understand and correct performance issues in a multithreaded application.

However, these tools focus on the CPU and can only trace an indirect and incomplete view of events related to the memory: the location of accesses, their time or both are usually lost in the process. Thus, they are not able to provide the developer with a clear view of memory accesses patterns occurring during the execution.

In such situation, xing memory related issues is a matter of trial and error and the eventual code is often suboptimal.

To solve memory related issues, the developer needs a detailed trace of memory accesses at a suciently ne granularity. An ideal tool should provide enough data to build a map of the memory accesses locations over the time.

Moreover, to ensure that a lack of precision does not compromise the analysis, such a trace should be complete. We say that a trace is complete at a certain granularity if and only if the events it contains form a superset of the actual accesses. To build a useful map of memory accesses performed by a parallel application, events in a memory trace should also include information about time, space (at which address the event occurs), location (on which CPU it occurs) and nature of access (is this a read, a write, by which thread). Furthermore, the trace has to be suciently precise, that is include a sucient number of events, in order to enable a sound analysis. At the time of this writing, existing memory analysis tools are not able to provide such traces. Some of them rely on instructions sampling [START_REF] Liu | A Tool to Analyze the Performance of Multithreaded Programs on NUMA Architectures[END_REF][START_REF] Lachaize | MemProf: A Memory Proler for NUMA Multicore Systems[END_REF] mechanisms, which produce incomplete traces at a precision limited by hardware capabilities. Other ones ignore temporal information to reduce their overhead [START_REF] Beniamine | TABARNAC: Tools for Analyzing Behavior of Applications Running on NUMA Architecture[END_REF].

Indeed, generating such traces is a challenge:

there is no hardware mechanism comparable to retrieve data structures information (address, size and name) using the informations contained in the application binary.

The remaining of this paper is organised as follows: in section 2 we discuss about related works, in section 3 we present Moca design, then, we evaluate Moca by comparing it to existing tools in section 4. Finally, we present our conclusions and some possible future work in section 5.

Related Works

Several generic tools have been designed to analyze and improve parallel applications performances, such as Intel's VTune [START_REF] Reinders | VTune performance analyzer essentials[END_REF], Performance Counter Monitor (PCM) [START_REF]Intel, Intel Performance Counter Monitor -A better way to measure CPU utilization[END_REF], the HPC-Toolkit [START_REF] Adhianto | HPCTOOLKIT: tools for performance analysis of optimized parallel programs[END_REF], and AMD's CodeAnalyst [START_REF] Drongowski | An introduction to analysis and optimization with AMD CodeAnalyst Performance Analyzer[END_REF]. All of these tools use performance counters and execution traces to show when and where CPUs are idle, and, thus, highlight potential places for improvements. But they mostly focus on CPU related information and provide only indirect data about memory performances, ones that can be computed from the performance counters values.

As performances counters are architecture dependent and are not always easily understandable, higher level libraries such as PAPI [START_REF] Weaver | PAPI 5: Measuring power, energy, and the cloud[END_REF] and Likwid [START_REF] Treibig | LIKWID: A lightweight performanceoriented tool suite for x86 multicore environments[END_REF] have been developed to ease their analysis. These libraries are able to derive more abstract and understandable metrics from raw hardware counters.

For instance Likwid provides several groups of metrics related to memory providing the user with computed bandwidth in each cache level and between each CPU core and the main memory. Overall, a lot of studies provide a memory analysis solely based on information collected through these hardware performance counters [START_REF] Majo | Mis)understanding the NUMA memory system performance of multithreaded workloads[END_REF][START_REF] Jiang | Understanding the behavior of in-memory computing workloads[END_REF][START_REF] Bosch | Rivet: A Flexible Environment for Computer Systems Visualization[END_REF][START_REF] Weyers | Visualization of Memory Access Behavior on Hierarchical NUMA Architectures[END_REF][START_REF] Tao | Visualizing the Memory Access Behavior of Shared Memory Applications on NUMA Architectures[END_REF][START_REF] Derose | The Hardware Performance Monitor Toolkit[END_REF]. Despite providing a good global summary about memory performance gures, these counters only provide a partial view of the execution. They account for memory related events from the point of view of one processor, but do not give a precise insight about the place and the cause of these events.

Another approach used by several tools [START_REF] Lachaize | MemProf: A Memory Proler for NUMA Multicore Systems[END_REF][START_REF] Mccurdy | Memphis: Finding and xing NUMA-related performance problems on multi-core platforms[END_REF][START_REF] Liu | A Tool to Analyze the Performance of Multithreaded Programs on NUMA Architectures[END_REF][START_REF] Giménez | Dissecting On-Node Memory Access Performance: A Semantic Approach[END_REF] consists in using instructions sampling mechanisms such as AMD's Instruction

Based Sampling (IBS) [START_REF] Drongowski | Instruction-based sampling: A new performance analysis technique for AMD family 10h processors, AMD CodeAnalyst Project[END_REF] or Intel Precise Event Based Sampling (PEBS) [START_REF]Performance Analysis Guide for Intel® Core i7 Processor and Intel® Xeon 5500 processors[END_REF] to trace the application execution. These methods provide incomplete sampling: some parts of the memory can be accessed without being noticed by the tool if none of the associated instructions are part of the sampled instructions. Thus, it is possible that they ignore some parts of the memory less frequently accessed but in which optimization could take place. Despite their low frequency, application sensitive to spurious performance degradation, such as interactive applications, could be hindered by these unnoticed accesses.

To make things practical, these sampling mechanisms monitor what they name an events set given by an instruction type along with some predicates. They can monitor several events sets at the same time but the number of monitored sets is limited by the hardware capabilities (number of available registers). Unfortunately, the number of existing events sets that relate to the memory hierarchy is large, because of its complexity. This makes dicult the task of tracing all the relevant memory accesses with just a single analysis. One way to lessen the impact of this limitation is to run several times the instrumentation and use advanced methods such as folding [START_REF] Gelabert | Towards instantaneous performance analysis using coarsegrain sampled and instrumented data[END_REF] to generate a more accurate summary trace. Nevertheless, this makes the instrumentation cost grow accordingly. Moreover, writing (and sometimes) using tools that relies on hardware mechanisms requires a deep knowledge of the processor. As processors evolve, such tools are hard to maintain and can quickly become outdated. We regard all these limitations as too constraining for a general purpose memory analysis tool.

Some other studies make use of hardware modication, either actual or simulated [START_REF] Bao | HMTT: A Platform Independent Fullsystem Memory Trace Monitoring System[END_REF][START_REF] Martonosi | MemSpy: Analyzing Memory System Bottlenecks in Programs[END_REF]. Although they are eventually able to collect more precise traces eciently, these techniques are limited to hardware developers. Indeed, to use these hardware extensions one has either to obtain (or build) a prototype or to use a suitable simulator. Such conguration is not realistic for general purpose memory analysis.

Inria

Binary instrumentation can provide accurate information about memory accesses. This method is portable and more precise than the aforementioned ones, but it comes at the cost of performances. Tools that rely on binary instrumentation usually collect data at a coarser granularity and give up temporal data [START_REF] Beniamine | TABARNAC: Visualizing and Resolving Memory Access Issues on NUMA Architectures[END_REF] to reduce their overhead.

Page faults interception can provide useful online information about memory usage, such a mechanism has been used in several existing works : in parallel garbage collectors [START_REF] Boehm | Mostly Parallel Garbage Collection[END_REF], in memory checkpointing [START_REF] Heo | Space-ecient Page-level Incremental Checkpointing[END_REF] or in the domain of virtualization to provide the hypervisor with information about the memory usage of the guest OS [START_REF] Jones | Monitoring the Buer Cache in a Virtual Machine Environment[END_REF]. Nevertheless, page faults only occur when caused by predetermined events in the system. Thus, just intercepting existing page faults only provide a broad view of the memory behavior. To reach a deeper understanding of this memory behavior, it is also possible to fake invalid pages at regular intervals in order to generate false faults [START_REF] Bae | Dynamic Adaptive Virtual Core Mapping to Improve Power, Energy, and Performance in Multi-socket Multicores[END_REF][START_REF] Diener | Communication-Based Mapping Using Shared Pages[END_REF]. These false page faults are just triggered during regular memory accesses that would not have caused a page fault if the page were not faked as invalid. The advantage is that they create additional events for the monitoring tool to collect, thus more precision, but the set of faked invalid pages has to be known and maintained by the monitoring tool.

As a nal note, most tools close to our proposal do not use false page faults injection and only need to store the location of memory pages and the threads that access them. As a consequence, they require a relatively small data structure in memory for their own usage. In this study we present Moca, a new complete memory trace collection system, based on page fault interception and false page faults injection, able to capture precisely the temporal evolution of multithreaded applications memory accesses. To reach a satisfying precision, our tool has to maintain in memory both the trace data and the set of faked invalid pages.

Overall, storing and exploiting eciently these data within the kernel space and outputting it in real time to the user space is a challenge and is the main contribution of our work.

Design

Moca consist of a Linux kernel module that can be loaded at runtime, a script in charge of both loading this module with the proper parameters and launching the monitored application on the user behalf and an optional Pintool [START_REF] Luk | Pin: Building Customized Program Analysis Tools with Dynamic Instrumentation[END_REF] ( This method has several advantages over hardware sampling or instrumentation. First it provides a superset of all the memory accesses, because it guarantee that each page accessed by the monitored application will at least fault once and will be traced. Thus, at the end of each monitoring interval, we know the exact set of accessed pages from which we deduce a superset of actual memory accesses. This comes in addition to the fact that each false page fault generated provides Moca with exact information about one memory access. This means that Moca also performs a sampling of all the memory accesses. Because it is designed to manage large chunks of trace data within the kernel space, it also stores all the details about these samples in the collected trace.

Moca diers from instruction sampling because it is not necessary to increase the monitoring frequency of Moca to collect a complete trace. On the contrary, when using instruction sampling, if the pages of the application are accessed in an unbalanced manner, it is necessary to increase the sampling frequency to get a precise picture of the memory working set of the application. Nevertheless, there can be no guarantee that a chosen sampling frequency will result in a trace that contains all the pages on which the application works.

Moca also diers from instrumentation based tools because, just as in the case of sampling, memory accesses that are not collected in the trace are not trapped at all by a false page fault.

Furthermore, the remaining memory accesses, those which are collected, are trapped using a hardware mechanism and Linux kernel probes.

Both are lightweight mechanisms, this means that the overall instrumentation overhead of Moca is likely to be much lower. Indeed, instrumentation based methods often work at a high granularity, collecting few information, in order to restrain their naturally high overhead.

Managing data

In this section we present in details how the main components of Moca interact and how Moca addresses the management of data it collects within the kernel space. During the execution, Moca needs to store three kinds of information:

1. The set of tasks (Linux internal representation of threads and processes) which are monitored. This is necessary because page faults will also be triggered by other tasks which do not belong to the monitored application.

2. The set of all page faults which have been injected by Moca, required to distinguish false page faults from regular ones, because their handling diers.

Experiments

In this part, we compare Moca to other existing tools for memory analysis. In a rst time, we present their main dierences in terms of portability and capabilities. Then, we present two sequences of quantitative experiments, one that outlines the importance of the default parameters chosen for our tool and the other that compares the precision and performance of all the tools.

Methodology

Our main experiments were run on machines from Grid5000 Edel cluster. As some state of the art tools can only run on AMD machines, we also ran some of the experiment presented in section 4.3 on St Remi machine from Grid5000 grenoble. These machines hardware specications 2 are summarized in Table 1.

For each experiment, we deployed the same Debian Jessie environment running a Linux 3.16.0-4 on a machine with hyper threading disabled. We disabled address space randomization to make the comparison between different traces more practical. As our two evaluation machines do not have the same hardware, we limited the number of threads used by openMP to 8 that is the largest number of hardware threads available on both machines.

We evaluate Moca by comparing it to the following state of the art tools. The rst one, Mi- tos, is the tracing tool from MemAxes [START_REF] Giménez | Dissecting On-Node Memory Access Performance: A Semantic Approach[END_REF]. The second one, Tabarnac [START_REF] Beniamine | TABARNAC: Tools for Analyzing Behavior of Applications Running on NUMA Architecture[END_REF], is one of our previous contribution, which only counts the number of time each thread accesses to each page. The third one, MemProf [START_REF] Lachaize | MemProf: A Memory Proler for NUMA Multicore Systems[END_REF], is designed to analyze NUMA performance issues. The main dierences between Moca and these other memory proling tools are summarized in Table 2.

In the following sections, all the tools are evaluated on each of the 10 NAS parallel benchmarks [START_REF] Jin | The OpenMP implementation of NAS Parallel Benchmarks and Its Performance[END_REF], which are presented in Table 3, according to the information available on the nasa website 3 .

Except for the experiment about the inuence of Moca's parameters, on each experiment, Moca has been run with it's default parameters: a wakeup interval of 0.5 s for the logging process and 50 ms for the monitoring thread. Each point in each plot is the average of at least 30 executions. Along with each point, the error bars represent the standard error.

We consider experimental reproducibility as we provide a git repository that includes our deployment environment, dependencies to all the tools and les required and instructions that explain how to reproduce the experiment with or without access to grid5000.

Moca default parameters

Before comparing Moca to existing tools, we need to evaluate the impact of the wakeup intervals (logging daemon and monitor thread)

on the trace precision and on the overhead. To do so, we run the IS benchmark instrumented by Moca with a wakeup interval ranging from 0.1 s to 0.9 s for the logging daemon and from We can see on the Figure 2a that the execution time increases when we reduce the monitoring wakeup interval. At 40 ms it seems to reach its worst level, thus we should keep it larger. At 50 ms, the default value we have chosen, the Figure 2b shows that we obtain more than two thirds of the events captured at smaller intervals, which seems quite reasonable. Regarding the logging interval, our experiments do not exhibit a clear trend. Changing it seems to interfere with the system I/Os scheduler resulting in chaotic variations both in the execution time and the number of captured events. The fact that variations in execution time result in matching variations in the number of captured events is due to the xed length of monitoring intervals : the longer the execution, the more monitoring intervals there are and the more events the trace contains. Overall these variations are not signicant as all the condence intervals intersect. Finally we have chosen a logging interval of 0.5 s, the median value, in order to avoid unnoticed eect caused by extremum values.

Comparison with existing tools

Preliminary experiments showed us that Mitos capture by default way less distinct pages than Tabarnac and Moca. Thus, we tried to change Mitos sampling period in order to make it capture at most pages as possible, we name this version MitosTun. Surprisingly, its behavior regarding this sampling period is not monotonous, we had to try many dierent periods to nd the proper one.

The default MemProf distribution did not work with our experimental setup. With the help of their support team 5 , we managed to make it work by disabling the library used to retrieve data structures names. For the same reason as in the case of Mitos, our study includes two version of MemProf : the default version and MemProfTun for which we have increased the sampling rate to its maximum.

Finally our evaluation also dierentiate Moca (kernel module only) from MocaPin which also retrieve the data structure information using a Pin instrumentation, we make this distinction to evaluate the impact of Pin on Moca performances.

We compare the dierent tools on two aspects: trace precision and induced slowdown.

Regarding the trace precision, the rst experiment compares the tools using two criteria: the percentage of captured pages and the number of captured events. We use Tabarnac as a reference to compute the total number of pages accessed by the application because, by design, 5 see issue at github.com/Memprof/scripts/issues/1 it traps all the memory accesses to compute the number performed in each page. This metric is representative of coverage of the memory space: the capacity of the tool to outline the whole memory area accessed by the application.

Regarding the number of captured events, we present the percentage relative to Moca, as it is the tool that usually provides the more precise traces. We dene one event as one timestamped access found in the trace le outputted by a tool.

According to this denition, Tabarnac does not capture any events as it only keep one counter per page and per thread without any temporal informations. Thus, Tabarnac is excluded from this comparison. The number of captured events is representative of the precision of a monitoring tool, its capacity to keep track of all the evolutions of the access patterns during the course of the execution. The idea is that, the more the tool captures events, the less it misses changes in the access patterns.

The second experiment compares the slowdown factor of the dierent tools. All these experiments have been run on each of the NAS parallel benchmarks on class A. We can see on Figure 3a that Moca captures almost as many pages as Tabarnac. Regarding their design they should capture as many pages. Nevertheless, there is a slight bump in the number of pages used by applications monitored by Tabarnac due to the Pin instrumentation. Indeed, its JIT instrumentation recompiles the executable on the y and changes the memory footprint (of the stack, mainly). Thus, we can safely ignore these dierences. more pages than Mitos and MitosTun. Nevertheless, for half of the studied applications it does not see more than 50 % of the addresses space. Only for, BT, LU, SP and UA, MemProf manages to capture around 75 % of the accessed pages. This is explained by the fact that all these benchmarks are using uniformly most of their address space, and that many pages are frequently accessed. This is coherent with the fact that MemProf is solely based on instructions sampling and only sees the most accesses pages.

From Figure 3b we can see that, as expected, for almost every benchmarks, Moca collects signicantly more events than the other tools.

The only benchmark for which Moca is not the more precise tool is EP which is an Embarrassingly Parallel application with very few memory accesses. This outlines the fact that Moca captures events in an uniform way, timed by the monitoring interval. On the contrary, the other tools might capture more events in a few hotspots presents in the application but miss sparse accesses during the rest of the execution. For almost every other benchmarks both Mitos (with or without tunning) and MemProf hardly reach 10 % of the accesses collected by Moca, the only exception is DC for which Mem-Prof captures from 25 % to 50 % of the accesses collected by Moca.

These results prove that most existing tools can miss a considerable part of the addressspace while Moca guarantee that it provides a superset of the accessed pages. Furthermore they show that Moca is the only existing tool able to provide a trace that is precise enough to give an good overview of the memory behavior of an application. In short, not only our tool provides a complete trace at the granularity of the page but it is also signicantly more precise than the other existing tools.

Figure 4 shows for each of the NAS parallel benchmarks, the slowdown factor when instrumented by Moca and the other existing tools on Intel (Figure 4a) and AMD (Figure 4b) Machines. Notice that the Y-axis is in log scale.

From Figure 4a, we can see that Mitos, Mi-tosTun overhead is almost negligible which is not the case for Moca and Tabarnac, this difference is explained by the results of the previous experiment, as these tools usually collects less than 10 % of the accesses collected by Moca and miss a signicant part of the address space.

We can classify the benchmarks into three groups: for BT, CG, DC, EP, LU, SP and UA, Moca is signicantly faster than Tabarnac. This set of benchmarks is interesting as it is made of varied application proles as we can see in Table 3 a considerable memory footprint as described in Table 3.

The second group only contains memory intensive benchmarks (FT and IS). For this group, Moca is as good as Tabarnac or a bit faster, probably because the balance between computations and memory accesses hides the overhead of the instrumentation.

For the last benchmark: MG, Moca is signicantly slower than Tabarnac. By looking at our experiment logs, we found that MG generates a lot of conicts in the hash map used by Moca to store false page faults. This issue is caused by applications that perform a very large number of sparse accesses to a large working set. This is not usual as parallel applications are often optimized to make memory accesses as local as possible in order to take advantage of all the levels of the memory hierarchy. Thus, we consider this benchmark as a pathological case. A solution could be to increase the size of this hash map, which is not always possible as memory space in the kernel is limited (and these experiments have been run with the largest hash map we could use). Another easier solution would consist in working on a smaller instance of MG and see if the trace is still useful.

Although the results are not presented here, we have run Moca on MG with a smaller size (W) and we have been able to conrm that the performance becomes comparable to Tabarnac in this case.

Figure 4b shows the results of the evaluation on the AMD machine (St Remi). On this machine, Moca overhead is quite similar to the one obtained on Edel. MemProf exhibits a slowdown factor comparable to Mitos while providing traces a little more precise. Nevertheless, they are still incomplete and way less precise than Moca traces. Obviously MemProfTun has the same overhead as MemProf as it capture the same amount of data.

Finally, we can see, as expected, that adding one execution with a Pin instrumentation to retrieve data structures information (MocaPin ) only adds a small overhead to the whole Moca execution. For several benchmarks this dierence is so small that we cannot distinguish it from Moca usual overhead.

Conclusions

In this study, we addressed the issue of memory accesses collection for multithreaded applications. This is a key challenge in high performance computing as memory is often a performance bottleneck. Memory traces can be used at runtime to improve data locality or ofine by developers to understand and improve the memory behavior of their applications and, therefore, their performances. For online analysis the trace precision is limited by the number of data that can be analyzed in real time, but for oine usage, highly accurate traces can provides a better understanding of the application Inria memory behavior.

To address this challenge, we have proposed Moca an ecient tool for precise and complete memory trace collection. While other existing tools rely on incomplete hardware sampling to provide such traces at an acceptable cost, Moca provides a complete trace, that contains all the accessed areas, at the granularity of the page.

  CPU performance counters to collect a detailed trace of memory accesses, and the volume of data to collect is huge. Methods based on binary instrumentation are too slow to provide a complete trace, and ecient hardware sampling mechanisms are not designed to provide all the information that constitute a complete trace.In this study, we present Memory Organisation Cartography and Analysis 1 an ecient memory trace collection system based on two existing techniques: page fault interception and false page fault injection.This tool is able to collect a complete sampled memory trace at the spatial granularity of the page along with a parametrized temporal granularity. It also collects detailed information about sampled accesses, including their address and precise timestamp. Furthermore, Moca is able to1 Moca is distributed under GPL licence:github.com/dbeniamine/MOCA RR n°8931

  c++ library based on Intel Pin) to retrieve data structure informations. It neither relies on architecture specic technologies such as AMD IBS or Intel PEBS, nor on architecture dependent kernel code, kernel patch or kernel modications. Therefore it is highly portable and can be run on any recent Linux kernel from the 3.0.Two tasks are addressed by the kernel module included in Moca. The rst one is keeping track of the set of pages accessed by the application during an elementary monitoring interval. The second one is managing somehow the huge quantity of data produced by the trace collection within the kernel space in-between regular ushes toward the user space. Of course, these two tasks should be as slightly intrusive as possible. When the Pintool is enabled Moca runs the application twice with virtual address space randomization disabled. The rst time the application runs only under Pin instrumentation and the second time Moca module is loaded but the instrumentation is disabled. This instrumentation reads static data structures information in each executed binary le and stores data about structures larger than one page. It also intercepts all calls to malloc family functions and names malloced structures according to their call path. Moca and Pin are run separately because preliminary experiments showed us that combining both tools resulted in a degradation of the trace quality. Our instrumentation remains lightweight, the added cost of the Pin instrumentation is the cost of a regular execution added to a small constant overhead for each binary opened and each allocation performed.

3 . 1

 31 Collecting memory accessesMoca collects complete traces in the sense that the exact set of pages accessed by the application is deduced from the collected events at all times during the execution. Thus, it is complete at the page granularity. Other information such as exact addresses and access times are a sample of the set of all the accesses.In recent Linux kernel, physical memory pages are lazily allocated to page frames during the execution. The rst access to a page in the virtual address space triggers a page fault. To handle this page fault, Linux allocates a physical page to the requested page frame. Such a page fault can also be triggered when a thread access a shared page modied by another thread. Moca is built upon the possibility to monitor memory accesses by registering a callback on Linux page faults.Nevertheless, a page fault does not occur at each memory access. To monitor memory accesses during the course of the execution, we need to reenable a page fault similar to the rst access, but performed on a regular basis and on behalf of Moca. In other words, we need to generate false page fault by periodically marking as not present the pages accesses by the application. In Linux terminology, this means that any access to the page will trigger a page fault which will have to be handled, in this case, by a handler contained in Moca.

3 .

 3 The set of addresses recently accessed by each task, this set correspond to the actual memory trace. It is required to keep Inria it in kernel space as we need to reinject these false page faults at the end of each monitoring interval. Afterwards, this set is transfered to the user space by a dedicated process and appended to the resulting trace.The rst two types of information are stored in preallocated hashmaps in order to reduce the runtime overhead of their management. These hashmaps are read at each page fault but rarely written, only when a new task of the monitored application triggers its rst page fault or when Moca creates some false page faults.We can protect them with Linux kernel builtin rwlocks. The third type of information is the actual trace, divided, for each task, in a private set of chunks. A chunk is the set of accesses that have been collected during the monitoring time interval. Chunks provide a discretization of the time, each chunk embed two timestamp to delimit its temporal bounds. The accesses are not timestamped but their order in the trace le is their order of arrival in the chunk. The advantage is that it reduces the volume of information stored for the accesses.

Figure 1 :

 1 Figure 1: Interactions betweens Moca and

4 all

 4 the les needed to reproduce our experiments at three dierent levels: The rst level constains the ltered results (csv les) from the experiments along with the R-markdown scripts that generated the plots presented in this article. The second consists of the full raw traces generated by our experiments along with the scripts used to extract the ltered traces (csv les from the previous level) and the scripts used at the previous level to perform the analysis. Finally, at the most comprehensive level,

  Number of captured events.

Figure 2 :

 2 Figure 2: Inuence of the wakeup intervals on IS, class A.

Figure 3

 3 Figure 3 presents the results of the precision evaluation of the dierent tools. The values used for Mitos, MitosTun, Moca and Tabarnac result from runs on Edel machines, while Mem-Prof and MemProfTun values result from runs on St Remi.

  Mitos usually collect less than 12.5 % of the pages, adding some ne tunning can almost double this number but it still misses most of the address space.Concerning MemProf , changing the default sampling rate does not seems to have any noticeable impact on the end result. Both Mem-Prof and MemProfTun captures signicantly Inria

Figure 3 :

 3 Figure 3: Precision of the traces generated by each tool.

Figure 4 :

 4 Figure 4: Slowdown factor of each tool. Y-axis in log scale.

  Moreover, Moca traces not only contain all pages that are accessed during the execution, but also, for each access, they contain temporal, spacial and sharing information: which thread, accessed what addresses on which CPU and when. While Moca works at the page granularity, it stores the exact address of each intercepted accesses. Therefore, it also provide an incomplete trace at the granularity of the byte, similar to traces collected by instructions sampling. Furthermore Moca can also relate accesses to data structures of the application by combining this ecient trace collection system with an examination of the application binary. Most state of the art tools are relying on hardware technologies such as Intel PEBS or AMD IBS, and embed vendor (or processor) dependent code making them hard to maintain and not portable. On the contrary, Moca is based on page fault interception as well as false page faults injection mechanisms and does not use any architecture dependent code. It can work on any Linux kernel from 3.0 only by loading a module and without any kernel modication. Several tools uses page fault interception to retrieve information about the memory behavior. As the information provided by only intercepting regular page fault is not always precise enough, a few tools also inject false page fault on a regular basis to increase the trace precision. To our knowledge, all the existing tools relying on these mechanisms uses the collected data online and thus does not have to manage and store a large amount of data. Moca is the rst tool capable of generating and storing complete and precise memory traces for oine analysis.We evaluated Moca by comparing it to two state of the art tools: Mitos and MemProf (with their default parameters and with some ne tunning) and one tool from a previous contribution Tabarnac. For this comparison, we evaluated two criteria: the precision of the trace and the overhead. We ran our evaluation on the NAS parallel benchmarks which is representative of multiple kinds of applications from simple kernels to realistic ones. Our evaluation has exposed the fact that the tools relying on hardware sampling miss a signicant part of the address space. It has also shown that Moca is able to provide both a complete trace at the page granularity and a sampling at the byte granularity signicantly more precise than the other tools. While generating comparable traces using MemProf or Mitos would require to sample all the memory instructions, which is not possible. Finally, Moca overhead appears to be more important than the overhead of sampling based tools but usually lower than the one induced by binary instrumentation. Future work will focus on the visualization and exploitation of these memory traces which is another challenge mainly due to the volume of the collected data.

Table 1 :

 1 Hardware conguration of our evalua-

	2 Grid5000 provides an online hardware description:
	https://www.grid5000.fr/mediawiki/index.php/
	Grenoble:Hardware#Edel
	https://www.grid5000.fr/mediawiki/index.php/
	Reims:Hardware#Stremi

Table 3 :

 3 Description of the NAS parallel benchmarks.

	3 http://www.nas.nasa.gov/publications/npb.
	html
	Inria

*maximum memory used, measured with Valgrind.

an important matter, therefore we distribute

RR n°8931

Acknowledgements

Experiments presented in this paper were carried out using the Grid'5000 experimental testbed, being developed under the INRIA AL-ADDIN development action with support from CNRS, RENATER and several Universities as well s other funding bodies (see https://www. grid5000.fr).

RESEARCH CENTRE GRENOBLE -RHÔNE-ALPES


Irja Shaanika
email: inshaanika@gmail.com

Tiko Iyamu
email: tiyamu@polytechnic.edu.na

Developing Enterprise Architecture skills: A Developing Country Perspective

Keywords: Information Technology, Enterprise Architecture, Skill, Competency, Training and Education

Through different approaches, organisations strive to evolve their competitiveness, as well as their addressing their operational and strategic needs. Some organisations employ Enterprise Architecture (EA), to bridge the gap between the business and IT, and to providing strategic goals. However, there exists scarcity of EA Skills in many developing countries. This could be attributed to the uniqueness of the discipline. The skills are instrumental in the development and implementation of the EA. What is even more challenging is that EA skills cannot be developed from any training facility, due to its nature of specialisation and seniority of the specialists. The limited training facilities contribute to the scarcity of EA skills in many developing countries, which have impact skill and transfer, and other resource developmental factors. This study therefore explored how and where EA skills can be developed, and what constitute the competency. The study was carried out in Namibia, using the survey technique, in the data collection. Some of the findings include education and training, leadership, and political implications on EA skill development.

Introduction

Organisations face challenges of business processes and information technology (IT) infrastructures change due to the driving factors, of globalization, technology explosion, and rapid growth on organizational structure [START_REF] Cekerekil | An Agile Approach for Converting Enterprise Architectures[END_REF]. In an attempt to addressing the challenges, some organisations employed approaches, such as the Enterprise Architecture (EA), to guide and manage their business and IT challenges. Over the years, the EA has increasingly become an important discipline for the management and governance of both business and IT processes and activities [START_REF] Osterlind | Enterprise Architecture Evaluation using Utility theory[END_REF].

Many organisations consider the EA approach to be of importance to their processes and activities. The approach is often used to translate business vision and strategy into business and technical requirements, periodically. It is argued that EA assist organisations, to create, communicate and improve the key requirements, principles and models, that describes the current and future state of the enterprise in an evolutionary manner [START_REF] Kaisler | Enterprise Architecting: Critical Problems[END_REF]. However, the use of EA depend on how it is understood, defined and scoped [START_REF] Schekkerman | How to suvive in the Jungle of Enterprise Architecture Frameworks[END_REF].

Individuals including organisations define the EA differently. The definition is informed and guided by their objectives, and understanding. The definition is critical because it shapes how EA is developed and implemented. Iyamu [START_REF] Iyamu | Enterprise Architecture As Information Technology Strategy[END_REF] argued that lack of understanding leads to incompatibility and confusion about the views on the definitions, objectives, process and phases that are required for the development and implementation of the EA.

The EA is a discipline in the field of IT. It is considered to be a unique and highly specialised area of the IT field. It is applied from both operational and strategic perspectives, in many organisations. According to Hiekkanen, Korhonen and Mykkänen [START_REF] Hiekkanen | Architects' perceptions on EA use: An empirical study[END_REF], EA is used as strategic tool, to holistically address the gap between the business and IT units in many organisations. Some organisations employs EA for governance and management of business and IT processes and activities. Due to the uniqueness and the specialised nature of EA, the skills are scarce to find. In Walrad et al. [START_REF] Walrad | Architecting a Profession[END_REF], they emphasically argued that EA skill are not easily available.

Many organisations have not been able to develop and implement the EA primarily because they do not have skilled personnel. What is even more challenging is the availabilty of the training facilities (places). Very few institutions of higher learning offer EA as a course, in the World, and very limited in Africa. The skills are mainly developed through trainings which are offered by professional bodies, such as The Open Group Architecture Framwork (TOGAF), and Gartner Inc. As a result, many organisations as well as researchers are puzzeled by how and where to develop such skills [START_REF] Wagter | Enterprise Architecture: A strategic specialismα[END_REF], [START_REF] Gøtze | The Changing Role of the Enterprise Architect[END_REF], [START_REF] Walrad | Architecting a Profession[END_REF]. This has made some organisations to consider developing the skills internally. Erosa and Arroyo [START_REF] Erosa | Technology Management Competences Supporting the Business Strategy[END_REF] argued that some skills, which are of technical nature could be best developed through experience but others are best arquired during proffesional studies.

Skill is defined as the ability to take what you know and apply it to create a desired output [START_REF] Walrad | Architecting a Profession[END_REF]. Most oftenly, institutions of higher learning are regarded as organisations for creating and equiping graduates with necessary skills, and foundation preparing them for industries. According to [START_REF] Yang | Innovation Pattern Analysis of The Industry-University-Research Cooperation[END_REF], institutions of higher learning are the cradle of learning, theorising, and research; hence they could be used as platform for developing EA skills. In this regard, the development of EA skills is lacking in the Africa continent. This is the main motivation for this study, which objectives were to understand and examine how EA skills could be developed, and the impact.

However many organisations are challenged by how and where to develop EA skills. The article presents the findings from an investigation on why EA skills are needed in the organisations. The research question was why is EA not deployed in the organisations? This includes understanding what is needed to develop such skills as well as the implications of not having EA.

Enterprise Architecture and Training

The EA is defined as "the organising logic for business process and IT infrastructure, reflecting the integration and standardisation requirements of the company's operating model" [START_REF] Ross | Enterprise Architecture as a Strategy:Creating a Foundation for Business Excution[END_REF]. The purpose of an EA is to provide guidance for business process and their associated information systems toward achieving the organisation's goals according to [START_REF] Cekerekil | An Agile Approach for Converting Enterprise Architectures[END_REF].

In many organisations, the business strategy and IT strategy are often disjointed [START_REF] Jin | Research of Information System Technology Architecture[END_REF]. Gøtze [START_REF] Gøtze | The Changing Role of the Enterprise Architect[END_REF] argued that in many enterprises, IT department do not develop IT strategy in accordance to business strategy, which result in effortless IT planning. This is attributed to the root source, for lack of alignment in some organisations.

Alignment is managed at a senior level (in accordance to structure) in many organisations. Some organisations identify the need to make use of the EA as a bridging tool between business strategy and IT strategy [START_REF] Jin | Research of Information System Technology Architecture[END_REF]. EA is therefore used and managed by senior employees in the organisations that deploy it. According to Iacob, Jonkers and Quartel [START_REF] Iacob | Capturing Business Strategy And Value In Enterprise Architecture To Support Portfolio Valuation[END_REF], closing the gap between the business and IT maximises alignment, thus reducing duplications and inconsistences among business processes and IT activities. Business and IT are distinct disciplines influencing each other and their coordination is necessary for organisation goals achievements [START_REF] Iacob | Capturing Business Strategy And Value In Enterprise Architecture To Support Portfolio Valuation[END_REF]. Therefore, EA intention is to enable organisation in addresing and achieving the balance between business effeciency and IT [START_REF] Iyamu | Theoritical Analysis Strategic Implementation of Enterprise Architecture[END_REF].

EA promotes the belief that an enterprise, as a complex system, can be designed and managed in an orderly manner, to achieving better overall performance [START_REF] Rosasco | Business Architecture Elicitation for Enterprise Architecture: VMOST versus Conventional Strategy Capture[END_REF]. Such performances shape organisation's competitiveness and sustainability. [START_REF] Alonso | The IT Implicated Within The Enterprise Architecture Model[END_REF] pointed out that EA helps in the communication of key elements that explains the operations and strategic intent of an organization. As such, the implementation of EA helps organisations to innovate and engineer change through stability and flexibility [START_REF] Rouhani | A Comparison Enterprise Architecture Implementation Methodologies[END_REF]. However, the development and implementation continue to be a challenging process in many organisations. According to [START_REF] Iyamu | Theoritical Analysis Strategic Implementation of Enterprise Architecture[END_REF], EA experiences both technical and non-technical challenges. While Kaisler et al. [START_REF] Kaisler | Enterprise Architecting: Critical Problems[END_REF] identified that the challenges are rarely technical, but they arises from factors, such as political, project management, and organizational issues, and weaknesses.

The development and deployment of EA is carried out through its domains, which include business, information, application and technical architectural, and guided by the organisation's goals and objectives [START_REF] Alonso | The IT Implicated Within The Enterprise Architecture Model[END_REF]. It is through the analysis of the domains' relationships that EA becomes a valuable management tool [START_REF] Xueying | Aligning Business and IT Using Enterprise Architecture[END_REF]. According to Iyamu [START_REF] Iyamu | Enterprise architecture: from concept to Practise[END_REF], the development and implementations of EA is based on how the organisation defines and understand the concept. Hence the skill-set is crucial.

The definition and understanding of EA is based on the product of organisation EA skills. [START_REF] Antunes | Modeling Contextual Concerns in Enterprise Architecture[END_REF] argued that due to different approaches that are applied by EA, including their tailoring and adaptation to specific domains, highly skilled personnel are required. Wagter et al., [START_REF] Wagter | Enterprise Architecture: A strategic specialismα[END_REF] defined EA architects as professionals with competencies that are responsible for the creation of organisational strategies. According to Wagter et al. [START_REF] Wagter | Enterprise Architecture: A strategic specialismα[END_REF], competences represent a dynamic combination of knowledge, expertise, attitudes and responsibilities. An enterprise architects develops IT strategy and enable decisions for for designing and developing and deploying IT to support the business process [START_REF] Armour | Business and Enterprise Architecture: Processes,Approches and Challenges[END_REF].

The EA is developed and implemented holizontally or vetrically, using the enterprise domain approach, respectively. Steghuis and Proper [START_REF] Steghuis | Competencies and Responsibilities of Enterprise Architects[END_REF] differentiated between EA architect and domain architects, stating that EA architects covers the breadth of business and IT, and the domain architects focus on the specific aspect of the enterprise, such as business, information, application and techical. Gøtze [START_REF] Gøtze | The Changing Role of the Enterprise Architect[END_REF] categorised enterprise architects into core, implicit, and applied. The artects form enterprise achitecture team that is capable of conducting gap and business requirement analysis at various levels of the enterprise [START_REF] Wagter | Enterprise Architecture: A strategic specialismα[END_REF].

EA enable an overview picture of how IT supports the different business processes, and how they support the operating model that is choosen to facilitate organisational activities [START_REF] Erosa | Technology Management Competences Supporting the Business Strategy[END_REF]. Across the organisation, a common understanding is required between IT and business operating models. Enterprise architects provide such understanding by translating and transforming knowledge across the organisation boundaries. This includes the boundaries between organisations and vendors, and between business and IT [START_REF] Gøtze | The Changing Role of the Enterprise Architect[END_REF]. Hence architects have crucial roles in finding the relevant varieties for the different contexts, often in the form of principles, standards, patterns, and policies.

Relevance and context are attributed to the rapid changes in organisations. Change in business environments causes business to change its processes, services and products, for competetiveness [START_REF] Khan | Alignment Strategies and frameworks in co-Evolution of Business and Information Technology[END_REF]. Changes also influence the IT artefacts in the organisations, as new systems are bought, developed or reused, to refocus on new competitveness. Khan and Zedan [START_REF] Khan | Alignment Strategies and frameworks in co-Evolution of Business and Information Technology[END_REF] argued that business and IT continue to change, and EA is used as a supporting tool. Thus [START_REF] Iyamu | Enterprise architecture: from concept to Practise[END_REF] asserts that EA is an agent of change, in the quest for competitiveness. It formalizes the organisation and its information systems to manage the risks that are related to changes [START_REF] Lakhrouit | State of the Art of the Maturity Models to an Evaluation of the Enterprise Architecture[END_REF]. To keep up with the accelerating pace of technology, enterprises should employ the EA [START_REF] Gøtze | The Changing Role of the Enterprise Architect[END_REF]. [START_REF] Erosa | Technology Management Competences Supporting the Business Strategy[END_REF] Also argued that enterprises should not just be concerned with business and IT alignments, but also assure employees competecies are aligned with such strategies.

Enterprise architect therefore, need to know how the organisation businesses operate and how decisions are made, and how knowledge is applies when modeling the enterprise architecture [START_REF] Walrad | Architecting a Profession[END_REF]. Modeling is essential to describing and understanding EA [START_REF] Kaisler | Enterprise Architecting: Critical Problems[END_REF]. [START_REF] Lakhrouit | State of the Art of the Maturity Models to an Evaluation of the Enterprise Architecture[END_REF] elaborated that knowing how enterprise works is important for architects, in order to be able to identify the strengths and weakness of the organisation, and lead gaps recongnition .

Research Methodology

The study was carried in Namibia, where it was considered to be essesntial due to the limited number of EA skills in the country, as at the time of the study. Based on the objective of the study, which was to the development of the EA skills and the impact of such skills, the qualitative research method was applied.

The semi-structured interview technique was employed in the collection of data, for two main reason: richness and flexibility. The technique was selected primarily because it enables the gathering of rich data, through insightful view and opinion from the participants [START_REF] Rowley | Using card-based games to enhance the value of semi-structured interviews[END_REF]. The semi-structured interview technique allows flexibility during data collection, this include instant probing of participants answers. According to [START_REF] Draper | Qualitative research in nutrition and dietetics:data collection issues[END_REF], the interviewer has the flexibility to rephrase and restructure the questions, during the interviews. For emphasis sake, we cite [START_REF] Rowley | Using card-based games to enhance the value of semi-structured interviews[END_REF], who explained that the interviewer may ask additional questions in response to what he or she considered to be significant statement from the interviewee.

A total of ten information technology (IT) specialists were interviewed. The ten individuals, irrespective of their affiliate (employer), are labelled PAS01 to PAS10. This was to respect and maint confidentiality. The interviewees were from different organisations in the country. The interviewees were selected based on their interest in EA, and their availability. A guide, such as the use of the same questions and format, was used in the interview sections, this was to maintain uniformity and consistency.

The data was interpretively analysed. The interpretivism approach was followed primarily because it allows the researcher to analyse interviewees' subjective reasoning [START_REF] Rowley | Using card-based games to enhance the value of semi-structured interviews[END_REF]. The core idea of interpretivism is understanding the subjective meaning of persons [START_REF] Goldkuhl | Pragmatism vs interpretivism in qualitative information systems research[END_REF]. To attain this, the researcher uses his or her skills as a social being to try to understand how others understand the world around them [START_REF] O'donoghue | Planning Your Qualitative Research Project: An Introduction to interpretivist research in education[END_REF].

Enterprise Architecture Skills and Competency

Enterprise architecture skilled personnel holds the positions of architects, in the forms of Enterprise Architect or domain Architect, such as Information Architect. Their roles and responsibilities defers, but are not entire independent of each other. However, organisations sometimes differ in the tasks that they assign to the architects. According to one of the interviewees, an IT manger from a financial institution, "we need architects to be able to utilize our resources effectively within organisation (PAS03)". We need architects to carry out that function primarily because they are the most highly specialised people within the IT department. Another participant, who is employed in one of the Government ministries at the time of the study emphasised that "because they are specialist individual in their domains, they bring in high level of focus and concentration into the organisation (PAS01)".

As depicted in Figure 1 below, the Enterprise Architects focus on the entire organisational needs, while the domain Architects concentrates on the areas of their specialisations. A manager briefly explained the role of technical architects: "The architects are needed to provide guidance on technological artefacts, as well as the guidelines through which they are aligned with organisation objectives (PAS09)". Similar to the role of technical architects, the business architects are responsible for the strategic modelling of processes and activities. In the view of business managers with one of the mining companies in Namibia, "we need business architects to define the structure of process flow in the organisation, and build performances measurement model PAS04)".

Architectural process is required across the entire units of the organisation that deploys the EA. The need often focuses on unique and critical areas of the organisation. One of the participants, who manage software development in an insurance company, opined as follow: "We need architects to help us with references in terms of maturity, and they also have the capability to analyse risks. They can see beyond the normal view of organisational operation (PAS02)".

Due to the significant of the EA to the organisations, it is critical to have knowledgeable personnel in the field, thus, creating knowledge hub. Many of those who participated in the study believe that the development of architects should be at the institutions of higher learning. This could be attributed to the wide scope, which range from software development and implementation, business and systems analysis, business applications, project management, to networking and operating systems. According some of the participants: "If it was not in higher institution, I would probably have no idea, and I would have not known what exactly enterprise architecture is actually all about"; and PAS10 -I think that the development of architects can start in institutions of higher learning, and continue into organisations".

Many organisations are faced with strong competition from their competitors, making case for approaches, such as EA, which enable and support competitiveness. Thus, however, require developing and leveraging EA skills, appropriately. EA skills provide an organisation with understanding of how business strategy should be supported by IT). Such understanding is fundamental in defining the relationship between business and IT units, and how their alignment can enhance business competitiveness. The importance, including the roles and responsibilities of architects in the organisations seems to be well understood. But yet, many organisations do not employ the approach in their operations. The fundamental question is what this study seeks to examine, "why is EA not deployed in the organisations"? Based on the analysis, which was interpretively carried out, the factors hindering the deployment of the EA in organisation include lack of education and training (skilled personnel), lack of technical leadership, and lack of political will by many organisations.

The factors, as shown in figure 1, are discussed as follows: i.

Education and Training

The shortage of skills was attributed to lack of education or training, or both. The skills cannot be developed based on experience alone. Education of enterprise architecture are provided through institutions of higher learning. This is because of the theorised nature of the course offered by the institutions. Training are considered to be hands-on excercises. Training of EA is often offered by professional bodies, such as TOGAF and Gertner Inc.

Due to the specialised nature of the field, the Architects needs both education and training to equip themselves. The edication provides them with the knowledge and skill to be, and act as architecs. The training enhances their competence in the field of specialisation, as enterprise architect or domain architect. The education and trainings enabled the architects to be technical leaders in the organisations.

ii.

Technical Leadership Based on the highly skilled and levels of specialisation nature of the Architects, they are relied upon in the organisations, supposedly so. As such, they should provide Leadership, to guide, motivate, and mobilise colleagues and other employees in the organisation. Also, through their leadership roles, the architects are expected to create the vision and culture of architecture in the organisation. Through the leadership, it would be easier and more flexible to govern and manage people, complexity, and document processes and activities within the organisation. Some of the leadership components and could be attributed to political will. It is sometimes difficult to disassociate leadership from political interplay. This is attributed to the role of a leader, to drive and lead in the network that the actor finds his or herself. You cannot be an architect f you cannot lead the people towards achieving the organisation's objectives.

iii.

Political Will Empirically from the study, another reason why the EA approach is not considered or employed in some organisations, is due to lack of political will to do so. Enterprise architecture depends on factors, such as efficiency and effectiveness to succeed. These factors are driven by motivation, mobilisation and resources, which manifest from politics, and political will. Where more than one person is involved, politics is involved, consciously or unconsciously, or even so, what Giddens refers to as practical unconsciousness. Giddens defined practical unconsciousness as "What actors know (believe) about social conditions, including especially the conditions of their own action, but cannot express discursively; no bar of repression, however, protects practical consciousness as is the case with the unconscious" [START_REF] Giddens | The Constitution of Society: Outline of the Theory of Structuration[END_REF].

The deployment and exercises of the EA processes and activities can be political. This is primarily because of the roles and responsibilities which are associated to it. To some extent, they are made powerful, and take away some functions from certain individuals and groups in the organisation.

Institutions of higher learning need to begin to introduce Enterprise Architecture as a course, at both undergraduate and postgraduate levels. As revealed in this study, the curriculum of the course should encompass components, such as technical, Leadership, and Politics know-how.

Conclusion

Enterprise architecture is considered to be a field that require highly skilled and compeent personnel, due to to its role in the organisation. The EA is intended to bridge the gap between the business and IT units, as well drive the strategies of the organisation from both bsiness and technology perspectives. The roles of the EA require the personnel to be highly skilled, through education and trainings.

As revealed in the study, EA skills and are not easily accessible or available. The skill is beyond technical know-how, which includes non-technical factors, such as leadership and politics. As such, the developers of education and training of the EA curriculum need to take into cognisance, this include non-technical factors.

The findings from this study should boost the confidence levels of managers of business and IT in organisations, particularly in Africa, where EA skills are lacking in a significant high proportion. The study exposes the managers to learn some critical factors, thoughs and beliefs about EA. It hereby make them know what are required, to develop and implement EA in their organisations. The study also reassures sponsors and investors on the significant of the EA in organisations.

Fig. 1 :

 1 Fig. 1: EA Skill Development