Levente Szász
email: levente.szasz@econ.ubbcluj.ro

Maike Scherrer

Patricia Deflorin

Kozeta Sev- Rani

Betim Cico

Adrian Besimi

Kreshnik Vukatana

Béla Rácz

The role of ICT-based information systems in knowledge transfer within multinational companies

Keywords: Information systems, Knowledge transfer, Manufacturing network, Multinational companies

This paper focuses on the internal network of multinational companies (MNC) and aims to investigate the role of information systems (IS) based on modern information and communication technologies (ICT) in transferring knowledge between different plants of the MNC, a subject still debated in the literature. To shed more light on this relationship, we propose that in the context of the MNC, the plant's role in the knowledge network has to be taken into consideration. The analysis is based on a case study approach with interviews conducted at thirteen manufacturing plants. Data analysis shows that plants can have two basic roles in the knowledge network: knowledge senders or knowledge receivers. Knowledge sending plants see IS less supportive in transferring knowledge, while most knowledge receivers rely heavily on some form of IS. Furthermore, IS proved unhelpful if the quality of data entered in the system was low, or when strategic support to allocate resources to use IS was missing.

Introduction

Manufacturing companies have changed their way of producing products. Traditionally, a manufacturing company had one plant and served the world out of this plant. Today, many companies produce their product portfolios in a network consisting of several plants located in different countries. These plants represent the building blocks of the internal network of multinational companies (MNCs). To coordinate these plants, the flow of knowledge has been recognised as of key importance [START_REF] Chew | Measurement, coordination and learning in a multiplant network[END_REF][START_REF] Ferdows | Transfer of Changing Production Know-How[END_REF][START_REF] Vereecke | A Typology of Plants in Global Manufacturing Networks[END_REF].

Beside the knowledge sending and receiving units, and the knowledge itself, benefits of a knowledge transfer process are also influenced by the connection between the sending and receiving unit [16,[START_REF] Szulanski | Exploring internal stickiness: Impediments to the transfer of best practice within the firm[END_REF], including the mechanisms and channels used to transmit the knowledge [START_REF] Almeida | Are firms superior to alliances and markets? An empirical test of cross-border knowledge building[END_REF]. Gupta and Govindarajan [START_REF] Gupta | Knowledge flows within multinational corporations[END_REF] show that these transmission mechanisms and channels positively influence the amount of knowledge shared, both at sending and receiving units. Almeida et al. [START_REF] Almeida | Are firms superior to alliances and markets? An empirical test of cross-border knowledge building[END_REF] demonstrate that MNCs use a multitude of different transmission mechanisms to move knowledge across different intrafirm units. They also show that MNCs put a heavy emphasis on using information systems to facilitate knowledge transfer, including shared databases, common communication software, standardised design tools and file formats, company intranets, etc. Reviewing the literature on knowledge transfer within MNCs, Song [START_REF] Song | Subsidiary absorptive capacity and knoweldge transfer within multinational corporatinos[END_REF] argues however that existing studies provide only limited information on how these transmission systems are used to transfer knowledge, and how their usage influences the benefits of the knowledge transfer. Thus, this paper aims to fill this gap by focusing on the role of a specific type of transmission systems, namely information systems (IS) based on modern information and communication technologies (ICT), in facilitating the knowledge transfer process within MNCs.

The role of IS in knowledge transfer is debated in the literature. While most of the studies find that IS supports knowledge transfer [e.g., [START_REF] Alavi | Review: Knowledge management and knowledge management systems: Conceptual foundations and research issues[END_REF][START_REF] Iyengar | Information technology use as a learning mechanism: The impact of IT use on knowledge transfer effectiveness, absorptive capacity, and franchisee performance[END_REF][START_REF] Jasimuddin | Knowledge transfer frameworks: an extension incorporating knowledge repositories and knowledge administration[END_REF][START_REF] Sook-Ling | Information infrastructure capability and organisational competitive advantage: framework[END_REF], some authors challenge this view [START_REF] Hislop | Mission impossible? Communicating and sharing knowledge via information technology[END_REF][START_REF] Roberts | From know-how to show-how? Questioning the role of information and communication technologies in knowledge transfer[END_REF] arguing that IS can hardly contribute to organisational knowledge transfer [START_REF] Mageswari | Knowledge management enablers, processes and innovation in small manufacturing firms: A structural equation modeling approach[END_REF][START_REF] Panahi | Towards tacit knowledge sharing over social web tools[END_REF]. This paper aims to contribute to this debate by proposing to take into consideration an additional factor, namely the role of the plant in the intraorganisational knowledge sharing processes within the MNC. Thus, we aim to answer the following research question (RQ):

How supportive are information systems for transferring knowledge between different plants of a multinational company?

2

The role of plants within the knowledge flow in MNCs

Knowledge transfer processes within an MNC are generally carried out between a knowledge-sending and a knowledge-receiving plant [START_REF] Gupta | Knowledge flows within multinational corporations[END_REF]16,[START_REF] Tseng | Determinants of MNC's Knowledge Inflows to Subsidiaries: A Perspective on Internalization Advantages[END_REF]. In this process, the driver for knowledge transfer is mainly the knowledge-receiving plant, as it faces problems that it cannot solve alone. After the knowledge transfer, the perception of the knowledge-receiving plant defines the knowledge transfer success [START_REF] Monteiro | Knowledge Flows within Multinational Corporations: Explaining Subsidiary Isolation and Its Performance Implications[END_REF]. Vereecke et al. [START_REF] Vereecke | A Typology of Plants in Global Manufacturing Networks[END_REF] identified four distinct roles of a plant. They analysed the engagement of the individual plant related to the frequency of knowledge sending and receiving, innovation sending and receiving and whether the plant hosted visitors or how frequent own employees were sent to other plants. Based on this, Vereecke et al. [START_REF] Vereecke | A Typology of Plants in Global Manufacturing Networks[END_REF] derived four plant roles, namely (1) the isolated plant, (2) the receiver, (3) the hosting network player, and (4) the active network player.

Szulanski [START_REF] Szulanski | The Process of Knowledge Transfer: A Diachronic Analysis of Stickiness[END_REF] suggests to take into account the following elements when analysing knowledge transfer: the two actors of the knowledge transfer process, i.e. the knowledge-source and the knowledge-recipient, and the channel of knowledge transfer. The knowledge-source in our case is the knowledge sending plant within an MNC that needs to have the willingness and capacity to share knowledge with other units from within the network. On the other hand, knowledge receivers need to have the ability to absorb, i.e. identify, assimilate and exploit the knowledge provided by the sender. The main attention related to the channel has been on the relationship between knowledgesending and knowledge-receiving plants. Within the channel, transmission mechanisms play an important role, as these mechanisms can support the knowledge transfer process [START_REF] Adenfelt | The Development and Sharing of Knowledge by Centres of Excellence and Transnational Teams: A Conceptual Framework[END_REF][START_REF] Almeida | Are firms superior to alliances and markets? An empirical test of cross-border knowledge building[END_REF]. Literature discusses a wide range of mechanisms through which knowledge can be shared [START_REF] Erden | Knowledge-flows and firm performance[END_REF][START_REF] Gupta | Knowledge flows within multinational corporations[END_REF][START_REF] Song | Subsidiary absorptive capacity and knoweldge transfer within multinational corporatinos[END_REF][START_REF] Tseng | Determinants of MNC's Knowledge Inflows to Subsidiaries: A Perspective on Internalization Advantages[END_REF], ICT/IS being among the most fundamental ones [START_REF] Almeida | Are firms superior to alliances and markets? An empirical test of cross-border knowledge building[END_REF].

3

The role of ICT-based IS in knowledge transfer

Modern ICT-based IS play a crucial role in today's MNCs. According to O'Brien and Marakas [18, p. 4] "an information system (IS) can be any organized combination of people, hardware, software, communications networks, data resources, and policies and procedures that stores, retrieves, transforms, and disseminates information in an organization". IS in general can help the purpose to create, store, process, retrieve, transfer and apply data and information within organisations [START_REF] Alavi | Review: Knowledge management and knowledge management systems: Conceptual foundations and research issues[END_REF]. Here we focus mainly on the transfer component as we are interested in how ICT-based IS supports the knowledge transfer process between different plants of the same MNC. Bigiardi et al. [START_REF] Bigliardi | ICTs and knowledge management: an Italian case study of a construction company[END_REF] argue that these systems based on information and communication technologies can be efficiently and effectively used to share intra-organisational knowledge. IS tools that make knowledge explicit, enable its transfer within multinational companies [START_REF] Malhotra | Absorptive capacity configurations in supply chains: gearing for partner-enabled market knowledge creation[END_REF][START_REF] Schreiber | Knowledge transfer in product development: an analysis of Brazilian subsidiaries of multinational corporations[END_REF]. Such tools include groupware, computer-supported cooperative work (electronic knowledge repositories, wikis), intranet, e-mail, portals and online communities [START_REF] Bigliardi | ICTs and knowledge management: an Italian case study of a construction company[END_REF][START_REF] Gangi | Would You Share?: Examining Knowledge Type and Communication Channel for Knowledge Sharing Within and Across the Organizational Boundary[END_REF]. Iyengar et al. [START_REF] Iyengar | Information technology use as a learning mechanism: The impact of IT use on knowledge transfer effectiveness, absorptive capacity, and franchisee performance[END_REF] show that the use of ICT systems significantly contributes to the effectiveness of the knowledge transfer at the receiver side as well. Jasimuddin et al. [START_REF] Jasimuddin | Knowledge transfer frameworks: an extension incorporating knowledge repositories and knowledge administration[END_REF] bring several case examples where knowledge repository systems largely supported the knowledge transfer process between senders and receivers, but they also note that the correct introduction and classification of information in such systems is an important factor for receivers to find relevant knowledge. Sook-Ling et al. [START_REF] Sook-Ling | Information infrastructure capability and organisational competitive advantage: framework[END_REF] offer further case study evidence for the usefulness of IT-based systems, such as knowledge repositories and e-mail systems, in sharing intra-organisational knowledge. Summarising the role of IS in knowledge transfer, Alavi and Leidner [START_REF] Alavi | Review: Knowledge management and knowledge management systems: Conceptual foundations and research issues[END_REF] argue that the positive contribution of these systems to the knowledge sharing process is based on three enabling factors: 1) IS has the potential to extend the reach of the internal network by connecting different isolated actors, 2) offers an increased variety of communication channels, and 3) it enables a faster access to knowledge sources.

Despite these enabling factors, several authors have criticised the general assumption that IS can significantly support the transfer of knowledge within an organisation. Alavi and Leidner [START_REF] Alavi | Review: Knowledge management and knowledge management systems: Conceptual foundations and research issues[END_REF] emphasise that if there is no overlap between the sender and receiver in their underlying knowledge base, then "the real impact of IT on knowledge exchange is questionable" (p. 112).

Roberts [START_REF] Roberts | From know-how to show-how? Questioning the role of information and communication technologies in knowledge transfer[END_REF] also questions the role of IS in transferring knowledge, and argues that IS can not entirely replace the face-to-face interaction between sender and receiver, as "the transfer of know-how requires a process of show-how" (p. 439). Knowledge transfer requires socialisation, willingness to send and receive, and trust between the sender and receiver, which can be built via personal interactions. Hislop [START_REF] Hislop | Mission impossible? Communicating and sharing knowledge via information technology[END_REF] raises similar critique, arguing that all knowledge has a non-codifiable element (that is not transferable via IS), and is deeply embedded in the activity, and social and cultural context of the knowledge sender. In light of these arguments, it is not surprising that Mageswari et al. [START_REF] Mageswari | Knowledge management enablers, processes and innovation in small manufacturing firms: A structural equation modeling approach[END_REF], for example, have not found any significant relationship between IS utilisation and intra-organisational knowledge sharing. In their literature review, Panahi et al. [START_REF] Panahi | Towards tacit knowledge sharing over social web tools[END_REF] also conclude that the role of IS in knowledge transfer is currently uncertain (with supporting and opposing arguments both co-existing in the literature), and call for further research in this field.

Methodology

To gain an understanding of knowledge transfer, and especially of how IS supports the knowledge flow in manufacturing networks, we examined thirteen plants and analysed 24 examples of knowledge transfer projects. We used middle-range theory development [START_REF] Merton | Social Theory and Social Structure[END_REF], by linking theory and empirical work. We derived dimensions from theory and refined them through case study research. Eisenhardt and Graebner [START_REF] Malhotra | Absorptive capacity configurations in supply chains: gearing for partner-enabled market knowledge creation[END_REF] recommend the case study approach for research interests such as ours, since the topic is not well documented and relatively unknown. The qualitative research approach provided us with deep insights into the selected case plants and allowed us to generate new insights. The plant level was selected as the unit of analysis to gain information in the needed level of detail.

An equal number of cases (three to four) was targeted in each of the four countries involved: Switzerland, Romania, Albania, and Macedonia. Field data were collected during 2016. The main method of data collection was a semi-structured interview, uniformly applied in each country. Researchers have participated in multiple interviews in different countries to enable a uniform understanding of data collection. After the data collection, the case data was first analysed within each respondent plant, followed by a cross-case analysis within and across countries.

Data analysis

To provide a detailed answer to our RQ, we first analysed the position of each individual plant within the knowledge network of MNCs. Based on interview data we tried to assess the extent to which each individual plant participates in (1) knowledge sending and (2) receiving, in (3) innovation sending and (4) receiving, and in (5) offering versus (6) receiving employee training (cf. [START_REF] Vereecke | A Typology of Plants in Global Manufacturing Networks[END_REF]). Each of the six measures was rated with interviewees on a scale from None (0) to High (3), with Low (1) and Medium (2) as intermediary values, and a sum of these measures was computed at the end (Table 1).

Based on these ratings the overall position of each plant in the knowledge network has been assessed by adding up all sending/offering scores (i.e. knowledge sending, innovation sending, offering trainings) and subtracting the total score of receiving (i.e. knowledge receiving, innovation receiving, receiving trainings). Plants in the table are sorted based on their overall position. An overall score above zero indicates that the plant is more actively engaged in information and knowledge sending activities, and thus it can be categorised as a knowledge-sender (S2, S3, S1), while a negative score indicates that the plant should be viewed as a primarily knowledge-receiving unit (A3, M3, R1, R3, A1, M1, A2, A4, R2).

Table 1. The position of interviewed plants in the knowledge network

Plant code Sum of position Plant code Sum of position

S2 2.5+3+3-1-1-1 = 5.5 R1 2+1+2-3-3-3 = -4 S3 2+3+3-2-1-1 = 4 R3 2+1+1-3-3-3 = -5 S1 2+1+3-1-1-1 = 3 A1 1+1+1-3-3-2 = -5 M2 3+3+1-3-3-2 = -1 M1 0+1+1-3-2-2 = -5 A3 2+2+1-2-2-2 = -1 A2 0+0+1-3-0-3 = -5 M3 2+1+1-2-3-3 = -4 A4 1+1+0-3-3-2 = -6 (continued in next column) R2 1+0+1-3-3-3 = -7
Sum of position = Total sending/offering scoretotal receiving score Thus, to investigate the role of IS in knowledge transfer, we divide our analysis into two parts, the first related to net knowledge sending plants (Table 2), and the second to knowledge receiving plants (Table 3). Interviewees were asked to identify one or two recent knowledge transfer projects and to rate and discuss the role of modern ICT-based IS in supporting knowledge exchange.

Skilling up Polish plant

The common online platform used was helpful, because the high quality of the data introduced. Yes

Product transfer to Polish plant

Although an IS was in place for knowledge transfer, it could not be used due to bad data quality. No

S3 Process introduction in a HU plant

The transfer of crucial knowledge could only be carried out through personal interaction. No Interview data indicated that although all knowledge sending plants had multiple, cutting edge IS in place, they were only rarely used. Bad quality of data introduced in the system was one of the reasons mentioned. For some of the projects, IS was simply not used because the complexity of the project required a more intensive face-to-face interaction. The only response supporting the contribution of IS to the knowledge exchange was offered for a project, which was of strategic importance for the company, and thus enough resources were deployed for the proper functioning of the system. On the other hand, knowledge receiving units generally use IS to support the transfer of knowledge. Compared to knowledge sending plants, in general, they perceive that IS offer much more support for knowledge transfer. Several respondents argued that IS actually represents the first and foremost channel for acquiring knowledge, which is afterwards complemented with face-to-face knowledge sharing.

Both cases where IS was not reported as being supportive for knowledge transfer from the knowledge-receiving manager's perception had bad data issues: for one project (R2, new component manufacturing) the data was mostly missing due to the innovative nature of the product and the time pressure around manufacturing its components, while for the other project (M3, implementation of safety standards) the system had stored high quantities of useful information (hundreds of safety standards), but it was organised in a manner that "required a lot of time to process".

Discussion and Conclusion

This paper looked at the role of ICT-based IS in the intra-organisational knowledge transfer within the internal network of manufacturing MNCs. Our results show that, indeed, in most of the cases IS plays a central role in transferring knowledge between different units, which is in line with the mainstream assumptions in IS literature [START_REF] Almeida | Are firms superior to alliances and markets? An empirical test of cross-border knowledge building[END_REF][START_REF] Iyengar | Information technology use as a learning mechanism: The impact of IT use on knowledge transfer effectiveness, absorptive capacity, and franchisee performance[END_REF]. However, in line with the case findings of Jasimuddin et al. [START_REF] Jasimuddin | Knowledge transfer frameworks: an extension incorporating knowledge repositories and knowledge administration[END_REF], we also argue that the data quality and strategic commitment towards using IS for transferring knowledge is an important precondition. Besides offering further support for previous findings, our results bring important new insights as well. We argue that the role of the plant in the internal knowledge network (i.e. knowledge sender or receiver) has to be also taken into consideration. Our findings show that this distinction can offer at least a partial explanation for the debated role of IS in knowledge transfer [e.g., [START_REF] Panahi | Towards tacit knowledge sharing over social web tools[END_REF][START_REF] Roberts | From know-how to show-how? Questioning the role of information and communication technologies in knowledge transfer[END_REF]. Knowledge sending plants in our sample see IS less beneficial for transferring knowledge. We argue that knowledge senders have to transfer complex knowledge "packages", which contains both codified and tacit knowledge elements. This explanation is in line with the practice-based approach of knowledge transfer put forward by Hislop [START_REF] Hislop | Mission impossible? Communicating and sharing knowledge via information technology[END_REF]. Thus, for a successful knowledge sending project, transmission mechanisms that are able to transfer non-codifiable knowledge are absolutely essential, i.e. different forms of personal interactions are more important for sending knowledge.

Knowledge receiving plants, on the other hand, report that IS is helpful in most of the knowledge transfer projects. We argue that in a receiver position, the plant is motivated to find the relevant knowledge for a certain situation or problem. Regardless of the type of the knowledge searched for, the most convenient way to acquire it, is to transfer it through an IS [cf. 11]. If this transfer is not enough, IS-based knowledge transfer was complemented in several cases by face-to-face interactions or trainings. Thus, in contrast to knowledge senders, receiver plants see IS as a primary enabler of knowledge transfer that may or may not be complemented with personal interaction.

Table 2 .

 2 The role of IS in knowledge transfer at knowledge sending plants

	Plant code	Knowledge transfer project	Role of IS	IS sup-port
		Product transfer to US plant	Helpful for storing information, but face-to-face meetings and employee exchange were more used.	Partial
	S1	Implementing a	All necessary knowledge was provided in a com-
		production line in	mon database, but the knowledge intake was re-	No
		a French plant	fused by French plant
	S2

Table 3 .

 3 The role of IS in knowledge transfer at knowledge receiving plants

	Plant code	Knowledge trans-fer project	Role of IS	IS sup-port
	R1	Implementing lean techniques ERP implementa-tion	Online platforms were frequently used to ask ex-perts for best practices Face-to-face trainings had to be used, only some information was acquired through IS	Yes Partly
	R2	New component manufacturing Implementing an In-dustry 4.0 project	New product with fast growing sales: know-ledge exchange was mainly human-to-human The project involved a lot of standardised infor-mation which were provided through IS.	No Yes
	R3	Implementing a TPM system Implementing work safety standards	IS was used to transfer project management in-formation from other units with experience IS was only partly used to receive the new standards and then monitor KPIs	Yes Partly
	A1	Inventory reduction New product manu-facturing	Video conference used to share knowledge on recycling, leading to inventory reduction Steps of new product implementation, that was documented and shared through IS	Yes Yes
	A2	Changing product "recipe" Standardisation of controlling	For quality HQ decided to change the recipe of a product, sharing a how-to manual through IS. IS tools helped the HQ to transfer a standard-ised communication guideline with authorities	Yes Yes
	A3	Improving produc-tion standards Improving safety standards	Sharing documentation and manuals with other plants through IS Incremental improvements of safety standards through IS in a periodical manner	Yes Yes
	A4	New product intro-duction Product transfer from Austrian plant	IS helped to transfer new product knowledge from HQ, introduced in the local market Lack of a common system made hard to exploit the whole facilities and efficiency of IS	Yes Partly
	M1	New product manu-facturing	A centralised IS was used to transfer knowledge that was fully standardised.	Yes
	M2	New raw material introduction New product manu-facturing	Measures from the intranet portal was used to-gether with experts' support Intranet portal was combined with regular meetings on project development.	Yes Partly
	M3	Production process improvement Implementation of safety standards	Quality and process related knowledge acquired from central database Too much time needed to process the over-loaded knowledge content in the system.	Yes No

Acknowledgement:

We would like to thank the Swiss National Science Foundation (SCOPES Joint Research Project IZ73Z0_152505) for the financial support provided for the research project discussed in this paper.


S Waschull
email: s.waschull@rug.nl

J A C Bokhorst

J C Wortmann

Impact of Technology on Work: Technical Functionalities that Give Rise to New Job Designs in Industry 4.0

Keywords: Industry 4.0, Cyber Physical System, technical functionalities, job design

With rapid advancements in the application of Industry 4.0 technologies throughout industries, a collection of different views on its potential implications for workers are emerging. Various authors agree that these technologies and their application in manufacturing systems is structurally different compared to current methods of production. Consequently, it is expected that the impact on manufacturing jobs, specifically on the tasks, is profoundly different from what we already know from literature. However, authors often borrow from existing literature to describe changes in work, and are not explicit on how and why Industry 4.0 and the implications is conceptually different. Until now, little research has focused on defining the technical functionalities that give rise to new job designs. This paper therefore focuses on synthesizing the diverging views on the effect of Industry 4.0 on employees' jobs and specifically aims to understand how the technical changes of the transformation towards a Cyber Physical System in production relate to changes in job design. The central question this paper addresses is: How do the technical changes of the transformation towards a Cyber Physical System impact job design in industrial production? The contribution is an overview of the technical functionalities of Cyber-Physical Systems that are conjectured to change direct and indirect valueadding jobs in industrial production. This model will be used as a basis for further empirical inquiries. Moreover, it provides central points of interests for organizations involved with the design and implementation of Industry 4.0, focusing on job design.

Introduction

Since the German government launched the Industry 4.0 initiative as one of the key high-tech strategies in 2011 [START_REF] Kagermann | Umsetzungsempfehlungen für das Zukunftsproject Industrie 4.0[END_REF], the term is being used as an umbrella term to describe the intensified application of an array of digital technologies in industrial production. They include a growing use of sensors, the expansion of wireless communication, growing computational power and storage capacity as well as growing data connectivity and AI applications [START_REF] Yoon | A conceptual framework for the ubiquitous factory[END_REF]. Industry 4.0 is often described as the next industrial revolution following the digital revolution of information technologies and computers in production [START_REF] Drath | Industrie 4.0: hit or hype[END_REF]. On the basis of this initial digitization, further technological developments defined in the concept of Industry 4.0 are projected to introduce a new paradigm shift [4] by allowing new methods of production [START_REF] Brennan | Manufacturing in the world: where next?[END_REF]. This implies a drastic change for the design of jobs, specifically the quality of work, work organization and human-computer interaction [START_REF] Botthof | Zukunft der Arbeit im Kontext von Autonomik und Industrie 4.0[END_REF]. These changes are described in two different development scenarios in literature, evolving around the potential of the new technologies to augment the worker in more complex tasks or to fully replace the worker and his skills [START_REF] Kagermann | Chancen von Industrie 4.0 nutzen[END_REF]. Similar changes in work have also been discussed earlier in the context of computer-integrated manufacturing (CIM) and evolve around the up-and deskilling potential of new technologies. Despite the fact that changes are forecasted, we still know little on specifically the technical functionalities that give rise to new job designs in the context of Industry 4.0. This is because the term is relatively new and lacks a strong conceptual foundation. Moreover, the level of technological sophistication in Industry 4.0 developments at organizations is still rather low. Hence, empirical insights into implications of developments are scarce and we still have to rely on forecasts. To further develop this understanding, this paper synthesizes the different perspectives of the effect of manufacturing technologies on work, specifically in the context of Industry 4.0. We then aim to define the technical functionalities of the transformation towards a Cyber Physical System (CPS) as a core concept of Industry 4.0, and discuss how these relate to changes in job design.

Impact of Technology on Work

2.1

The Deskilling vs. Upskilling Perspective Throughout the last decades, two main schools of thought were represented referring to the changes in skills originating from technological change [START_REF] Attewell | Skill and Occupational Changes in U.S. Manufacturing[END_REF]. The adoption of these perspectives by scholars changed periodically and many rejected the deterministic relationship it implies. On the one side, the de-skilling perspective describes the simplification of jobs and the reduction in skills of more highly skilled craft workers [START_REF] Braverman | Labor and Monopoly Capital[END_REF]. This perspective first appeared during the first industrial revolution of mechanization as a result of the replacement of craft skilled labor through machines [START_REF] Berg | The Machinery Question and the Making of Political Economy[END_REF]. It was reestablished during the introduction of computers into the manufacturing environments in the 1970's as the concept of the automated factory, or lightless factory emerged. This viewpoint has also been referred among others as the degradation of work or polarization of skills approach [START_REF] Sorge | Industrial relations and technical change: the case for an extended per-spective[END_REF]. In general, a capitalist management focuses on automation technologies with the goal to gain greater control over their production workers, thereby simplifying and routinizing work processes, reducing the need for individual skills and knowledge of the process, materials or quality issues involved. Consequently, management is less dependent on the individual skilled craft worker whose special knowledge, insights and skills will be transferred from the production worker to technical professionals. The work is organized so that the production worker often has to follow routines and procedures on simple tasks determined by others, diminishing the need to conceptually understand one owns work or to take decisions. The tasks are then polarized into jobs with routine tasks and highly complex tasks, respectively. On the other hand, the upskilling perspective identifies technological change as making work more demanding in terms of skills required for the job [START_REF] Sorge | Industrial relations and technical change: the case for an extended per-spective[END_REF][START_REF] Hirschhorn | Beyond Mechanization: Work and Technology in a Postindustrial Age[END_REF][START_REF] Spenner | Deciphering Prometheus: Temporal Change in the Skill Level of Work[END_REF][START_REF] Zuboff | the Age of the Smart Machine[END_REF]. This perspective appeared in the mid of the 20 th century when the first computers entered the production environments. Fearing that computerized work settings and potentials for automation could affect workers, various researchers started examining the impact of automation on the tasks and skills of the workers [START_REF] Adler | New Technologies, New Skills[END_REF][START_REF] Clarke | The Process of Technological Change[END_REF].

The upskilling perspective contrasts the de-skilling perspective, stating that rather than automating complex and skilled tasks, simple and routine jobs are automated, resulting in jobs that focus on the more challenging and complex aspects of tasks posing higher cognitive demands [START_REF] Hirschhorn | Beyond Mechanization: Work and Technology in a Postindustrial Age[END_REF]. Workers are freed to take up new tasks such as monitoring and controlling equipment and become troubleshooters for automated processes [e.g. [START_REF] Hirschhorn | Beyond Mechanization: Work and Technology in a Postindustrial Age[END_REF][START_REF] Clarke | The Process of Technological Change[END_REF]. Both views have received much criticism throughout the years as they tend to oversimplify and generalize matters and assume a unidirectional effect of technology on work. However, this effect often differs per type of technology [START_REF] Clarke | The Process of Technological Change[END_REF] due to different functionalities made available with that technology. Moreover, studies indicate that the impact of technology on job design depend on a variety of other various organizational factors [START_REF] Liker | Implementing computer-aided design: the transition of nonusers[END_REF], such as management choice, their vision and goals [START_REF] Wall | Advanced Manufacturing technology and work design: Towards a theoretical framework[END_REF].

Industry 4.0 -Human Centered or Intelligently Replaced?

There are two main positions taken in literature focusing on different implications of Industry 4.0 technologies for work [START_REF] Hirsch-Kreinsen | Digitization of industrial work: development paths and prospects[END_REF]. These development scenarios include on the one hand the enabling scenario closely resembling the up-skilling perspective. On the other hand, the replacing scenario mirrors the deskilling perspective. Enabling technologies often provide means to increase the performance or the capabilities of a user or process. As opposed to the workerless facilities as proclaimed by CIM in the 70's, the Industry 4.0 movement often emphasizes the importance of the people in the system as an integral factor of the production environment [START_REF] Kagermann | Chancen von Industrie 4.0 nutzen[END_REF][START_REF] Bauernhansl | Die vierte Industrielle Revolution -Der Weg in ein wertschaffendes Produkti-onsparadigma[END_REF]. Humans are forecasted to keep a high level of autonomy and are highly skilled. Technological support should be provided in such a way that the full potential of these skills and talents can be realized [START_REF] Gorecky | Mensch-Machine-Interaktion im Industrie 4.0-Zeitalter[END_REF]. As such, people are charged with a new role of strategic decision makers and flexible problem-solvers. Routine, simple execution and control tasks are then automated [START_REF] Dworschak | Comptences or cyber-physical systems in manufacturingfirst findings and scenarios[END_REF]. The nature of tasks will shift towards a higher degree of complexity. Employees will have to interact, monitor and control more complex technical systems, increasing the need for knowledge on e.g. software architecture, automation and IT. Furthermore, tasks can become more unstructured and diverse. This is what Koelmel [START_REF] Koelmel | Advances in production management systems. Sustainable production and service supply chains 25. Windelband L (2014) Zukunft der Facharbeit im Zeitalter "Industrie 4.0[END_REF] refers to as increased technical and contextual complexity. This changes their work towards more mental work as information processing, abstraction and problem solving requirements will increase [START_REF] Kagermann | Chancen von Industrie 4.0 nutzen[END_REF]25]. The human will become the central decision maker, augmented by technology. Windelband et al [START_REF] Windelband | Zukünftige Qualifikationsanforderungen durch das Internet der Dinge in der Logistik[END_REF] refer to this perspective on change as the tooling scenario. The information available and the analysis done by computer systems are geared towards augmenting the knowledge and expertise of the employee. Therefore, by assisting workers better in their jobs, they can take over more complex tasks [START_REF] Romero | The Operator 4.0: Human Cyber-Physical Systems & Adaptive Automation towards Human-Automation Symbiosis Work Systems. Production Management Initiatives for a Sustainable World[END_REF]. On the contrary, new technology in Industry 4.0 is perceived by others as a possible constraining factor, thereby replacing human insights and technically enabling controlling and monitoring possibilities. This scenario is also referred to as digital Taylorism referring to Taylors principles of work simplification and control [28] and resulting in a strong deskilling effect. Edwards & Ramirez [START_REF] Edwards | When to embrace or resist new technology?[END_REF] refer to the paradox that Industry 4.0 is a fully configured system linked by information technology resulting in a reduced ability to shape the wide contours of the system. In accordance with this is the expectation that especially low skilled jobs will have to follow a pre-determined sequence of steps and will have less possibilities to intervene in the working process [25]. In line with that thought is the potential of technologies to fully replace the human skill and expertise as autonomous human decisions can increasingly be taken over by the computer or the application system that control the processes. In the digital factory, increasing autonomy of IT systems and corresponding integrated manufacturing equipment can potentially lead to human workers being pushed to the background [START_REF] Frey | The future of employment: how susceptible are jobs to computerization?[END_REF], only intervening as a troubleshooter. The question then is to what extend the decoupled worker is still able to intervene and react to problems if he is taken out of the loop. Moreover, as systems are becoming smarter, they have the potential to further emit the worker and take on the formerly human based control decisions. Thereby potentially they are becoming less dependent on the skills and control of the worker. The two development scenarios presented represent two very different implications for the design of jobs and it is expected that depending on local application conditions and other factors, different job designs will emerge. The changes through CPS are expected to be dependent on the organizations choice of design of technology and the corresponding provided functionality as well as how they organize work around it [START_REF] Dworschak | Comptences or cyber-physical systems in manufacturingfirst findings and scenarios[END_REF]. To obtain a better understanding into the functionality provided by Industry 4.0 technologies and how it relates to work, in the next section we propose distinct functionalities that are provided through a combination of technologies that transform production into a cyber-physical production system. Subsequently, we shortly discuss what this means for the design of jobs in direct and indirect value adding tasks.

Technical Functionalities of Industry 4.0 and Job Design

The interconnected cyber-physical production system. A central element of Industry 4.0 in industrial production is the creation of a factory wide information network inte-grating data, models, machines, processes and software tools vertically and horizontally [START_REF] Yoon | A conceptual framework for the ubiquitous factory[END_REF]. In its essence, CPS are physical production components that are represented in a cyber-counterpart, a logical layer that processes pre-specified information and that, depending on its capabilities, can communicate, negotiate and interact with other actors in the information network [START_REF] Fantini | Exploring the integration of the human as a flexibility factor in CPS enabled manufacturing environments: methodology and results[END_REF]. Embedded computers such as Programmable Logic Controller (PLC) or embedded systems can monitor and control the physical processes [START_REF] Lee | Cyber Physical Systems: Design Challenges[END_REF] and can share the information horizontally across the process or vertically up to higher level information systems. This is projected to result in interconnectedness, information transparency and increasing autonomous behavior of production components [START_REF] Herman | Design principles for industry 4.0 Scenarios[END_REF]. However, the transformation towards a CPS is not a turn-key project, but we expect that different stages will emerge. We characterize these states by a passive or active role of production components and the level of intelligence of production components, respectively. First, we distinguish between a passive and an active role of production components. A passive role means that production components will obtain an identification technology, such as a RFID chip, and as such will be able to respond to inquiries concerning location, environmental conditions or states. This so called passive role of a component mainly provides real-time data capture and as such, promotes the further digitization of manufacturing processes as realtime data can be collected and distributed within the information network of systems, machines, products and processes. Hence, this system is characterized by passive actors that can communicate pre-specified data when initiated by other active actor, most likely humans that take the initiative. The active role of production components refers to physical objects such as products or machines being capable to use their processing power to not only collect data but also to communicate, to negotiate and take autonomous actions to meet pre-specified design objectives. A key characteristic here is the ability to act autonomously without the intervention of human beings. The production system increasingly becomes an active actor that takes autonomous decisions. Second, we distinguish between different levels of intelligence that can be present in a CPS system. The level of intelligence refers to production components and other embedded systems having increasing processing power to convert data to useful information based on pre-specified design objectives. If production components solely collect and communicate data, they are characterized by a low level of intelligence. However, if they are capable of converting this data into useful information and use this information to fulfill a pre-specified purpose, they are characterized by a high level of intelligence. This translates into the phases as specified by figure 1. First, production components receive a cyber identify and the capabilities to be identifiable and communicate passively. Subsequently, the production components are increasingly interconnected with each other and within the information network, and they begin to exchange information and communicate and negotiate with each other [START_REF] Kagermann | Umsetzungsempfehlungen für das Zukunftsproject Industrie 4.0[END_REF]. To do so, they need processing power, which also increasingly allows them to process the data into information that they can share. In subsequent phases, production systems then move towards intelligent automation, in which active production components increasingly take autonomous actions without human intervention.

Role of production components

Implications for job design: It is expected that the transformation towards a CPS does not only radically change existing manufacturing practices, but will change the design of jobs too, currently described in two diverging development. Based on the functionalities described, we expect that during digitization, the human worker will remain the key information processor and decision maker. Workers, especially supporting functions such as planning, control or maintenance workers will then be required to work with and process larger amounts of digital information, possibly resulting in higher cognitive demands and need for information processing. Simple, repetitive work related to the collection and administration of data will increasingly be automated, promoting a shift of the human workers towards tasks related to the control, coordination and improvement of production based on the improved information transparency. These changes will potentially mostly be felt by supporting functions. Also, certain aspects of jobs might be simplified or also enhanced, as new ways to interact and present information will increasingly augment the human in his work. At the same time, manual work might be simplified and constrained as detailed and standardized digital work instructions can be provided that allow little room for deviation and job autonomy. As production components move from passive to active actors and are becoming more intelligent, these interconnected systems can increasingly aggregate and visualize information comprehensively so that it can provide tailored information that augments the human in the decision making process. For example, to provide information on certain possible product routings or alert him of changes. Finally, in the last stage of intelligent automation, the technology can increasingly be empowered to take over certain control and production management tasks, potentially eliminating or decreasing human tasks. In this case, human knowledge and skills might increasingly be substituted by intelligent control algorithms and computer programs. Based on these development perspectives, we expect that the total share of human work in industrial production will decrease due to the transformation towards a CPS. Moreover, the composition of human tasks in production will change due to the reduction of repetitive, manual and simple work, for example simple administrative tasks and the increase in cognitive, mental work posing increasing skill require-ments. As such, this can lead to a growth of supporting work related to the control and improvement of processes and less manual work. Ultimately, the implications for the human worker depend on how the technology is designed and how work is organized around it. As such, management has significant over the technology selection, design and implementation process. The role of the human worker in CPS hence is not determined by the technology itself, but a variety of other factors.

Conclusion

Throughout the history of industrial production, two development perspectives on the implications of new technology for work have been discussed. The possibilities to upand deskill employees are also central in the discussion on changes in work in the context of Industry 4.0. As such, the adoption of either perspective depends on a variety of factors, among which the technological functionalities that provide opportunities and constraints for the design of jobs. This paper aims to increase our understanding on these technical changes in the transformation towards a CPS that give rise to changes in the design of jobs, and we presented two key dimensions. These two dimension include the level of intelligence of production components and their active or passive role, respectively. In the long term, the transformation towards a CPS will reduce human work in industrial production. Moreover, human work will focus on cognitive and mental tasks. Ultimately, this impact will not solely be determined by the technology itself. Management often has significant discretion on how new technologies are configured and the way that work is organized around it.

Fig. 1

 1 Fig. 1. CPS typology


Christopher Haine

Olivier Aumage

Denis Barthou

Rewriting System for Profile-Guided Data Layout Transformations on Binaries

Keywords: Performance Tuning, Data Layout Restructuring, Memory Traces

Careful data layout design is crucial for achieving high performance. However exploring data layouts is time-consuming and errorprone, and assessing the impact of a layout transformation on performance is difficult without performing it. We propose to guide application programmers through data layout restructuring by providing a comprehensive multidimensional description of the initial layout, built from trace analysis, and then by giving a performance evaluation of the transformations tested and an expression of each transformed layout. The programmer can limit the exploration to layouts matching some patterns. We apply this method to two multithreaded applications. The performance prediction of multiple transformations matches within 5% the performance of hand-transformed layout code.

Introduction

Adapting data allocations and structures to the way data is used is a key optimization for parallel architectures. Changing data layout can enhance spatial data locality and memory consumption, having a large impact on code performance. Associated with instruction rescheduling and loop nest transformations, layout restructuring has a strong impact on vectorization and may lead to a better use of cache hierarchy, through temporal and spatial locality. Data restructuring is a global optimization in general, requiring interprocedural analysis, and in languages such as C, possible aliases hamper the scope of transformations. When considering combined data layout and control-flow transformation, dependence analysis further limits the applicability of the methods. Finally, due to the complexity of memory hierarchy, the impact on performance of a data structure change is difficult to assess. To illustrate this difficulty, the simple choice between an array of structures (AoS) or a structure of arrays (SoA) is highly dependent on the use of the structure. Depending on the locality of data, it may be beneficial to use the SoA version if when using a single field at a time or the AoS version when using multiple fields (such as a complex number, for instance). For a parallel code, an Array of Structures of Vectors/Arrays may have to be considered, resulting in portability issues and unacceptable program complexity for the human programmer [START_REF] Satish | Can traditional programming bridge the ninja performance gap for parallel computing applications?[END_REF].

Several works have studied data layout restructuring for specific applications [START_REF] Videau | Optimizing 3d convolutions for wavelet transforms on cpus with sse units and gpus[END_REF][START_REF] Kong | When polyhedral transformations meet SIMD code generation[END_REF] and for stencils [START_REF] Henretty | Data layout transformation for stencil computations on short-vector simd architectures[END_REF]. In a recent work [START_REF] Aumage | Detecting simdization opportunities through static/dynamic dependence analysis[END_REF] the authors proposed a framework to analyze binary codes, and to formulate user-targeted hints about SIMDization potentials and hindrances. These hints provide the user with possible strategies to remove SIMDization hurdles, such as code transformations or data restructuring. However, this preliminary work conducted a qualitative analysis only, thus lacking an estimation in the transformation gains. In [START_REF] Haine | Exploring and evaluating array layout restructuring for simdization[END_REF], we proposed a more quantified approach, to detect simple arrays and structures from execution traces, and suggest promising data layout transformations.

This paper proposes a novel approach for data restructuring. A formalization of data structures and of their transformations is described, independently of any control-flow or rescheduling optimization. We show that this framework can be used from memory traces in order to provide a quick assessment of potential gains (or lack of) to be expected from some transformations. For this purpose, we show how to setup mock-up executions for an application, in order to evaluate the impact of the transformation without the need to actually change the whole data structures or re-execute the whole application. This approach is evaluated on two real applications parallelized with OpenMP, combining restructuring and vectorization. The contributions proposed in this paper are the following:

-Description of data structure layouts and their transformations, independently of control-flow optimizations; -Generation of mock-up codes with restructured layouts; -Performance evaluation of mock-ups, with and without SIMDization.

The paper is organized as follows: Section 2 presents two motivating examples with sub-optimal data layout. Section 3 describes a method for finding an initial multidimensional layout matching a trace, and the possible transformations. Section 4 presents the evaluation methodology. The experimental results are discussed in Section 5 and Section 6 presents related work.

Motivating Examples

From a user perspective, abstract data types correspond to algorithmic requirements, but choosing the actual data layout requires to take compiler, runtime support and architectural constraints into consideration. We illustrate this gap between the data layout chosen for the two following applications. In the cardiac wave simulation [START_REF] Wang | Fast acceleration of 2d wave propagation simulations using modern computational accelerators[END_REF], the hot spot of the OpenMP version of the application uses a large 4D array to store the whole data structure, as shown in Figure 2. The first 2 dimensions have starting index of 1, creating unnecessary gaps between lines. The third dimension is used as a structure with numbered fields, and the fourth dimension has a spatial locality issue, since it is indexed with the parity of the computation step (to keep only the previous computation results). While reordering dimensions here is not very complex, the ordering and locality choices for the last dimension depend on the computation itself and on the architecture. The second example considered is a Lattice QCD application, based on ETMC simulation [START_REF] Barthou | QIRAL: A High Level Language for Lattice QCD Code Generation[END_REF]. The hotspot of the application performs several matrixvector computations. Each matrix is described as an element of a large array, U. The space iterated by iL is a 4D linearized space. In this 4D space, only the white elements of a checkerboard are accessed, through an indirection array. Deciding how to restructure this array and whether it is worth to get rid of the indirection is important for the code performance. This example is difficult to analyze statically and would require some additional information from the user. An analysis based on traces on the contrary would capture the regularity of the accesses, in spite of the indirection.

f o r (X=1; X<Nx+1; ++X) { f o r (Y=1; Y<Ny+1; ++Y) { d a t a r r [ X ] [ Y ] [ 1 3 ] [ ( s t e p -1)%2] = d a t a r r [ X ] [ Y ] [ 1 3 ] [ ( s t e p -1)%2] -(2 * Dp [ 0 ] [ 0 ] + 2 * Dp [ 1 ] [ 1 ] ) * d a t a r r [ X ] [ Y ] [ 0 ] [ s t e p %2] -Dp [ 1 ] [ 0 ] * d a t a r r [ X-1 ] [Y + 1 ] [ 0 ] [ s t e p %2] +Dp [ 1 ] [ 1 ] * d a t a r r [ X ] [ Y + 1 ] [ 0 ] [ s t e p %2] +Dp [ 1 ] [ 0 ] * d a t a r r [ X+ 1 ] [Y + 1 ] [ 0 ] [ s t e p %2] +Dp [ 0 ] [ 0 ] * d a t a r r [ X+ 1 ] [Y ] [ 0 ] [ s t e p %2] -Dp [ 1 ] [ 0 ] * d a t a r r [ X+ 1 ] [Y -1 ] [ 0 ] [ s t e p %2] +Dp [ 1 ] [ 1 ] * d a t a r r [ X ] [ Y -1 ] [ 0 ] [ s t e p %2] +Dp [ 1 ] [ 0 ] * d a t a r r [ X-1 ] [Y -1 ] [ 0 ] [ s t e p %2] +Dp [ 0 ] [ 0 ] * d a t a r r [ X-1 ] [Y ] [ 0 ] [ s t e p % 2 ] ; }} f o r ( i L =0 ; i L < L /2 ; i L +=1) { f o r ( j =0; j <4; j ++) { r 0 = U [ i d n [ 4 * i L ] ] [ 0 ] * tmp [ j ] ; r 0 += U [ i d n [ 4 * i L ] ] [ 1 ] * tmp [ n2+j ] ; r 0 += U [ i d n [ 4 * i L ] ] [ 2 ] * tmp [ 2 * n2+j ] ; r 1 = U [ i d n [ 4 * i L ] ] [ 3 ] * tmp [ j ] ; r 1 += U [ i d n [ 4 * i L ] ] [ 4 ] * tmp [ n2+j ] ; r 1 += U [ i d n [ 4 * i L ] ] [ 5 ] * tmp [ 2 * n2+j ] ; r 2 = U [ i d n [ 4 * i L ] ] [ 6 ] * tmp [ j ] ; r 2 += U [ i d n [ 4 * i L ] ] [ 7 ] * tmp [ n2+j ] ; r 2 += U [ i d n [ 4 * i L ] ] [ 8 ] * tmp [ 2 * n2+j ] ; ID2 [ j ] += r 0 ; ID2 [ n2+j ] += r 1 ; ID2 [ 2 * n2+j ] +=

Layout Description and Transformations

We give here a formal description for layouts and rules for transforming them.

f o r i 0 = 0 t o 255 f o r i 1 = 0 t o 255 v a l 0 x 00 0 0 10 0 0 + 16384 * i 0 + 32 * i 1 v a l 0 x 00 0 0 10 0 8 + 16384 * i 0 + 32 * i 1 e n d f o r f o r i 1 = 0 t o 255
v a l 0 x 00 0 0 30 1 0 + 16384 * i 0 + 32 * i 1 v a l 0 x 00 0 0 30

Data Layout Description

Data structures are considered as any combination of arrays and structures, of any length. A layout is the description of this structure and of the elements that are accessed in it. A layout can be defined only for a limited code fragment. When considering a syntactic memory access expression in the code, it defines a set of memory address values. This set can be denoted as base + I where base is the base address and I is the set of positive integers, including 0. All addresses are within a range [base, base + d -1] where d is the diameter of I. The set of offsets I can be represented by a layout function S I,d , characterizing I:

S I,d : [0, d -1] → {0, 1} x → 1 if x ∈ I, 0 otherwise S I,d is called a structure layout. If I = [0, d -1] (all elements are accessed), S [0,d-1]
,d is more specifically called an array layout, denoted A d . Note that these terms of arrays and structures may not correspond to the structures really occurring in the source code. To build a multidimensional data structure, we define the product operator ⊗ and the sum ⊕ on layout functions L 1 and L 2 :

L 1 ⊗ L 2 : I 1 × I 2 → {0, 1} x, y → L 1 (x) * L 2 (y) L 1 ⊕ L 2 : I → {0, 1} x → L 1 (x) + L 2 (x)
For the product, the two layout functions L 1 and L 2 may have two different domains, I 1 and I 2 . For the sum, the domain of the two functions must be the same. The + operation is a saturated addition between integers. With this notation, Array of Structures correspond to the combination of the two types of layout, described by A d ⊗ S I,d for some values of d, d and I. The formal description corresponds to the intuitive representation of the data. The same factorization identities exist with ⊕ and ⊗ as with integers. Some simplifications are possible between expressions involving both operators:

(S I,d ⊗ L) ⊕ (S J,d ⊗ L) = S I∪J,d ⊗ L, (L ⊗ S I,d ) ⊕ (L ⊗ S J,d ) = L ⊗ S I∪J,d

Finding the Initial Multidimensional Layout

In the general case, the memory accesses are given as flat, linearized addresses. The objective of this section is to find out the different multidimensional layouts used in the code fragment considered. On the source code, finding whether two memory accesses correspond to the same array region correspond to an alias analysis. Delinearization can be used in some simple cases to retrieve the multidimensional structure associated to the addresses. Because indirections or complex operations can be involved in the address computation, as shown in the two codes given as motivating examples, we propose in this paper to resort to memory traces. The code fragment is executed and all memory accesses generate a trace. This trace is compacted on-the-fly with the NLR method [START_REF] Ketterlin | Prediction and trace compression of data access addresses through nested loop recognition[END_REF] in order to find possible recurring stride patterns. The following rewriting system transforms a flat layout into a multidimensional layout:

SI,m → SJ,n ⊗ Ap if I = {j * p + k, j ∈ J, k ∈ [0, n]} (1) SI,m → An ⊗ SJ,p if I = {k * p + j, j ∈ J, k ∈ [0, n]} (2)
Sn * I+p,m * n → SI,m ⊗ S {p},n if p < n (3)
with n * I + p = {n * i + p, i ∈ I}. The first rule corresponds to the case where the initial layout is a structure of array, the second to an array of structure, and the third is the general case, where two structures layouts have been linearized. The initial multidimensional layout can be found by applying these rules iteratively until convergence. The rewriting system is confluent and convergent.

Convergence comes from structures with diminishing sizes. We assume that array layouts are not rewritten. Confluence entails that the rules can be applied in any order and results from the fact that there is only one way to rewrite any given part of the addresses. We apply the previous algorithm to restructure the trace given in Figure 2. The trace is given as a for..loop enumerating addresses and out of simplification, is a simplified version for the memory access of matrix U (2D case, only first statement, no outer dimension). The following initial structure corresponds to the set of values accessed by the trace:

U + S {2048 * [0,255]+4 * [0,255]},d ⊕ S {2048 * [0,255]+4 * [0,255]+1},d ⇒ ⊕ S {2048 * [0,255]+4 * [0,255]+1024+2},d ⊕ S {2048 * [0,255]+4 * [0,255]+1024+3},d U + A256 ⊗ S {0},2 ⊗ A256 ⊗ S {0,1},4 ⊕ A256 ⊗ S {1},2 ⊗ A256 ⊗ S {2,3},4
Applying Rule 3, then merging the first two lines and the last two, and then applying Rule 2 and finally Rule 1 leads to the formulation on the right. This corresponds to an AoSoAoS: This is an array of 2 lines, even lines and odd lines.

Even lines have 256 elements that are structures of 4 doubles, using only the first 2. Odd lines have 256 elements having 4 doubles, using only the last 2. This is represented in Figure 2.

Transformations

We define layout transformations as rewriting rules that rewrite the layouts defined in previously defined formalism. For these rules, rules applying to structures S are assumed not to apply to arrays. If S I,d (x) = 1, we will rather write it as: S d . #I corresponds to the number of elements in I:

L ⊗ L → L ⊗ L (4)
An * m → An ⊗ Am (5)

SI,n ⊗ SJ,m → S I ,n * m , if #I = #I × #J (6) S I,d → S I ,d , if #I = #I , d ≤ d (7)
Rule 4 permutes two layouts, Rule 5 cuts an array in two arrays. Rule 6 fusions two structure layouts and the last rule, 7, removes unused elements in a structure. In a layout expression composed of different terms in a ⊕, all terms of the sum at the same position must be rewritten with the same rule, since it corresponds to the same sub-structure. All transformations preserve the number of elements in the layouts.

Exploring Layouts

The previous rewriting system generates a finite but potentially large number of layouts. We propose a strategy to limit the exploration. Rule 5 is only applied at most once to split an array for SIMDization purposes. One of the created array is then permuted in the rightmost position of the term in order to create a possible vector of elements. Rule 7 is applied whenever possible. Rule 6 simplifies code generation by fusing contiguous dimensions. This rule is only applied at the end of the rewriting.

To further reduce exploration, we propose to guide the generation by proposing patterns of layouts. For instance, SIMDization requires that the layout ends with an array. Only terms in the form of the regular expression * ⊗ A are considered. For instance, on the two examples shown as motivating examples, we look for layouts of the form * ⊗ A or * ⊗ A ⊗ S c (with S c the structure corresponding to complex numbers). This leads to the layouts presented in the following table:

Code Initial Layout Transformed Layouts [short name] Qiral excerpt A L ⊗ S {1},d ⊗ Sm ⊗ Sc A L/v ⊗ Sm×c ⊗ Av [AoSoA-dbl] Qiral precond. excerpt x,y,z,t≡0[2] ( k=x,y,z,t A l ⊗ S k,2 ) A L/v ⊗ Sm ⊗ Av ⊗ Sc [AoSoA-cplx] ⊗S {1},d ⊗ Sm ⊗ Sc Sm×c ⊗ A L [SoA-dbl] Sm ⊗ A L ⊗ Sc [SoA-cplx] Qiral application A L ⊗ S d ⊗ Sm ⊗ Sc A L/v ⊗ S d ⊗ Sm×c ⊗ Av [AoSoA] S d ⊗ Sm ⊗ A L [SoA] Cardiac Wave A X ⊗ A X ⊗ S {0},a ⊗ S {0},s A X ⊗ A X
The preconditioned version for QIRAL has a detected 4D checkerboard pattern, here expressed in a concise form, and v has the size of a SIMD vector. Checkerboard compression leads to the same transformations, only with L half the size. The QIRAL excerpt corresponds to the code presented as the motivating example while the application includes a larger scope of code.

Transformation Evaluation

This section deals with the quantified part of the user feedback we provide. The idea is to estimate the potential speedup of transformations in order to help the user make a choice for data restructuring.

Principle of Mock-up Evaluation

We propose an evaluation methodology that explores a set of different layout transformations. Because these transformations are based on the values collected by memory traces, the generated transformed codes are in general not semantically equivalent to the initial code, outside of the trace. However they can serve as performance mock-ups. The idea is to measure possible performance gains of the application by executing the mock-ups. To preserve the application execution conditions, the mock-up is executed in the context of the application. Checkpoint/restart technique is used for this objective: Assuming the user knows the hotspot of the application, the original binary code is patched with a checkpoint right before the hotspot and then run until the checkpoint is reached. This checkpoint generates an execution context, used for capturing the trace and running/evaluating the mock-ups. The binary code is instrumented in order to collect the memory trace and restarted from this context. Then several layout transformations are applied on the initial code, generating new versions of the code that are restarted from the same context. As the checkpoint/restart mechanism preserves the memory addresses in use, the addresses and sizes of layouts captured in the trace can be reused in the mock-up codes. We rely on this property for generating data layout copies and the transformed codes. Our approach does not preserve however the hotspot cache state. Cache warm-up may be a solution to this issue, but goes beyond the scope of this paper. Mock-ups are stopped when the control leaves the hotspot and the timing is deduced at this point. For checkpoint/restart, we resort to the BLCR library [START_REF] Hargrove | Berkeley lab checkpoint/restart (blcr) for linux clusters[END_REF].

Automatic Mock-up Generation Technique

Mock-ups are generated at compile time, as library functions. A mock-up corresponds to the initial hotspot, with different memory accesses and their address computation. The rest of the computation itself corresponds to the original code.

Before executing the mock-up, the data layout has to be created and data copied. This copy-in operation is guided by the trace information. The objective is to optimize the hotspot performance, and to push away the copies from the kernel to minimize their impact, avoiding cache pollution due to the copy itself. We choose to move the copy up to the beginning of the function if applicable, the limit being the last write on the array we want to restructure. This is determined automatically by trace inspection.

The sequence of transformation rules applied to the initial layout corresponds also to transformations on the iterators of these structures. The copy codes are simple loops changing one layout, with one iterator, into another. For the indexation of data in the computation code, the control is kept unchanged. New scalar iterators are created in order to map the previous index to the new index. For this, the trace provides for each individual assembly instruction the sequence of addresses accessed. This sequence of indices is transformed into a sequence of new indices, of the new layout.

The binary code is parsed with the MAQAO tool, and the modified code of the mock-up is generated in a C file, using assembly inline. The advantage of this approach is to rely on the compiler for an optimized register allocation for all the new induction variables added for indexing, and for removing dead code. For instance, the loads corresponding to the indirection are removed when reindexing the data structure in a simpler way. The code generated is only valid within the scope of the values collected by the trace.

Combining Layout Restructuring with SIMDization

Data restructuring is a SIMDization-enabling transformation, as data can be placed contiguously to fill a vector. We perform SIMDization whenever dependences allows it, impacting the control (loops) of the hotspot. From the trace analysis, we build a dependence graph that determines whether some arrays can be vectorized. We rely on MAQAO for this analysis [START_REF] Aumage | Detecting simdization opportunities through static/dynamic dependence analysis[END_REF], as well as for the detection of loop structures and for loop counters. The generated vectorized loop has a shorter loop trip count by a factor equal to the architecture vector size. This loop trip count is retrieved from the memory traces. All instructions involving the initial data structure have to be replaced by their vectorized counterpart, including load and stores. Some compiler optimization can be untangled, such as partial loads that are replaced by a single packed load operation. Reductions are detected through dependence graph analysis, and are replaced using horizontal operations. We detect read-only arrays or constants and unpack them. However, our SIMDization step from binary code to assembly code (assembly inline) is still fragile and essentially only applies a straightforward vectorization scheme.

Experimental Results

The objective of the section is to show how relevant the speedup hints are, in the sense that they provide useful advice to the programmer. To do so, we compare our mock-up speedups with the actual performance observed by restructuring by hand the C code, using layouts defined in Section 3.3. All experiments are conducted on an Intel(R) Xeon(R) CPU E5-2650 2GHz 2*8-core processor with SSE2 features, using icc 15.0.0 and gcc 5.3.1 compilers, both with -O3 flag.

Lattice QCD: Figure 3 shows performance of both mock-ups and handtransformed codes for the loop nest in Figure 1.(b). The hand-tuned code focuses only on restructuring layout and does not perform explicit SIMDization. It appears that gcc does not vectorize the code when handling complex data types and performs poorly even compared to the non-vectorized mock-ups. For the code without preconditioning (left graph), all mock-ups predict performance improvement for each of the four transformation presented, with an average relative error of 16% compared to the hand-tuned codes. For AoSoA-cplx, the mock-up underestimate performance. The reasons comes from the fact that icc optimizes the complex multiply and the load/stores, outperforming the naive SIMDization of the mock-up. Similar conclusions hold for the code with even/odd preconditioning. For the whole multithreaded hotspot function, the manually restructured version resorts to intrinsics, as the compilers do not manage auto-vectorization. Predictions for SoA and AoSoA are reliable with an average relative error of 4%, as shown in Figure 4, as mock-up SIMDization perform close to user restructured code. With a packed thread policy and hyper-threading disabled, the multithreaded context does not disrupt the mock-up prediction, since the code is parallel and compute-bound. 2D Cardiac Wave Propagation Simulation: The hotspot is not vectorized, but it is successfully vectorized after data layout restructuring; Consequently no intrinsics are used in hand-tuned codes. We study layout restructuring impact on performance on two different datasets, corresponding to two different layout sizes. Speedups obtained after restructuring are shown in Figure 5 for the Dataset-256. With only the restructuring, the mock-ups exhibit a speed-up of 2.4× on average. When considering mock-ups with SIMDization, the gain of SIMDization alone is around 2×. Mock-up prediction average relative error is 9% too optimistic in this experiment. This over-estimation is explained by the effect of cache warm-up. In the mock-ups, the data copy loads data in the cache right before the hotspot. In the application, such "prefetch" is not performed. The input size is multiplied by a factor 4 using Dataset-512. In this new configuration, restructuring gain is dramatically higher than before, increasing with the number of threads and reaching roughly 14× with 8 threads, as application achieves to take full advantage of all private L2 caches. Moreover, prediction remains consistently slightly overoptimistic as memory cache may be warmer before kernel execution than actual real application cache, while still being accurate with an average relative error of as low as 5%.

Related Work

Many modern languages, in particular object oriented languages, propose a layer of abstraction between data types and the data layout in memory (hierarchical arrays, C++ libraries). However, few works propose to restructure existing data, in codes written in C or Fortran. This abstraction layer is also provided by libraries, hiding in particular the complexity of AoSoA layouts with SIMDization to the user (Cyme [START_REF] Ewart | Cyme: A library maximizing simd computation on user-defined containers[END_REF], Boost:SIMD or Kokkos [START_REF] Edwards | Kokkos: Enabling performance portability across manycore architectures[END_REF], to name a few). The StructSlim profiler [START_REF] Roy | StructSlim: A lightweight profiler to guide structure splitting[END_REF] helps programmers into data restructuring through structure splitting. For GPU, copy is performed at transfer time and data layout change is also performed at this step [START_REF] Tseng | Automatic data layout transformation for heterogeneous many-core systems[END_REF][START_REF] Sung | Dl: A data layout transformation system for heterogeneous computing[END_REF]. Code analysis is performed statically, on OpenCL for instance. The same approach has been explored for heterogeneous architectures [START_REF] Majeti | Adha: Automatic data layout framework for heterogeneous architectures[END_REF], assessing affinity between fields and clustering fields, and devising multi-phase AoS vs SoA data layouts and transforms. V P 3 [START_REF] Wong | Vp3: A vectorization potential performance prototype[END_REF] is a tool for pinpointing SIMDization related performance bottlenecks. It tries to predict performance gains by changing the memory access pattern or instructions. However, it does not propose high level restructuring. Similarly, ArrayTool [START_REF] Liu | Arraytool: A lightweight profiler to guide array regrouping[END_REF] can be used to regroup arrays, to gain locality, but there is no deeper change in data layouts.

Annotations and specific data layout optimizations with compiler support has been proposed by Sharma et al. [START_REF] Sharma | Data layout optimization for portable performance[END_REF]. The source-to-source transformation requires to describe in a separate file the desired array interleaving. Similarly, the array unification described by Kandemir [START_REF] Kandemir | Array unification: A locality optimization technique[END_REF] and Inter-Array Data regrouping [START_REF] Ding | Inter-array data regrouping[END_REF] propose to merge different arrays at compile-time in order to gain locality. The POLCA semantics-aware transformation toolchain is an Haskell framework offering numerous transformation operators using programmer inserted pragma annotations [START_REF] Tamarit | Towards a semantics-aware transformation toolchain for heterogeneous systems[END_REF]. Neither of these approach provide an assessment of the performance gains to guide the user restructuring or hint generation, and these compile-time approaches cannot handle indirections.

Delinearization is the first analysis on the compiler side, in order to be able to restructure the layout. Parametric delinearization, for some particular codes, has been proposed by Grosser et al. [START_REF] Grosser | Optimistic delinearization of parametrically sized arrays[END_REF]. Specifically for stencil codes, using the polyhedral model, Henretty et al. [START_REF] Henretty | Data layout transformation for stencil computations on short-vector simd architectures[END_REF] propose a complete restructuring of layout for SIMDization. This would not apply to the Lattice QCD code with the even/odd preconditioning (indirection)

Compared to the authors previous work [START_REF] Haine | Exploring and evaluating array layout restructuring for simdization[END_REF], the work presented in this paper gives a more general framework for the recognition of complex data layouts and systematic exploration of data layouts. The code generation and SIMDization are automatically achieved, for a given transformation.

Conclusion

We have presented in this paper an original contribution for assessing the impact on performance of data layout restructuring. The layout transformations, based on profile information and described by a rewriting system, can be shown and explained to the user, from the initial layout to the transformed one. These transformations can then be applied and explored directly on a binary code generating automatically a new binary code. A set of different restructuring has been combined with SIMDization and the evaluation has been conducted on two applications, with different parameters (size of input, preconditioning used) and using different number of threads. The results show that the performance prediction of mock-up restructuring is reliable compared to a hand-tuned transformation and SIMDization (below 5% in average of relative error).

Fig. 1 .

 1 Fig.1. Two examples of codes needing data layout restructuring. In the Cardiac wave simulation, the 4-D array datarr is used as an array of structures. For the QCD simulation, all elements are complex double values. The space iterated by the outer loop is a 4-D linearized space and the indirection used for U walks through the white elements of a 4-D checkerboard.

Fig. 2 .

 2 Fig. 2. Example trace for Qiral for array U accesses, simplified 2D version for conciseness. Each color in the map represents one line of the trace.

Fig. 3 .

 3 Fig. 3. Lattice QCD Benchmark without Preconditioning (left), with Even/Odd Preconditioning (right) Speedup, single thread.

Fig. 4 .Fig. 5 .

 45 Fig. 4. Lattice QCD Application Restructuring+SIMD speedup with respect to thread number.