Towards a social and context-aware multi-sensor fall detection and risk assessment platform For elderly people fall incidents are life-changing events that lead to degradation or even loss of autonomy. Current fall detection systems are not integrated and often associated with undetected falls and/or false alarms.In this paper, a social-and context-aware multi-sensor platform is presented, which integrates information gathered by a plethora of fall detection systems and sensors at the home of the elderly, by using a cloud-based solution, making use of an ontology. Within the ontology, both static and dynamic information is captured to model the situation of a specific patient and his/her (in)formal caregivers. This integrated contextual information allows to automatically and continuously assess the fall risk of the elderly, to more accurately detect falls and identify false alarms and to automatically notify the appropriate caregiver, e.g., based on location or their current task.The main advantage of the proposed platform is that multiple fall detection systems and sensors can be integrated, as they can be easily plugged in, this can be done based on the specific needs of the patient. systems and sensors leads to a more reliable system, with better accuracy. The proof of concept was tested with the use of the visualizer, which enables a better way to analyze the data flow within the back-end and with the use of the portable testbed, which is equipped with several different sensors. For elderly people fall incidents are often life-changing events that might lead to degradation or even loss of autonomy. More than half of the elderly living in a nursing home and about one third of the elderly living at home fall at least once a year [1] . Of those who fall, 10 to 15% suffer severe injuries. The lack of timely aid can lead to further complications [2] . Although not all fall incidents lead to physical injuries, psychological consequences are equally important. Due to the high impact of falling, both fall prevention and reliable fall detection are necessities. The fall risk and detection work processes, as currently being employed, are visualized in Figure 1 (a).. The increased risk factors that are related to falls can be divided into extrinsic and intrinsic risks 1 . The first are directly related to the environment, while the second include, next to age and general clinical condition, sedentary behavior, impaired mobility and gait due to reduced muscle strength. To assess the risk of falling that a person has, formal caregivers carry out standardized tests. For example, the "Timed Get Up and Go Test (TUG)" is a test that is carried out in clinical environments on predefined, long time intervals [3] . Based on the results, targeted measures and advice are formulated. Further follow-up is done through direct interaction between a caregiver and the elderly. Today, attempts to automate this assessment and follow-up through domotics and monitoring systems are limited and not integrated [2] .. When the help desk is notified of a fall, either by one of the fall detection sensors or because the elderly pushes the button, the help desk operator tries to contact the elderly to obtain extra information. When the elderly does not respond or help is needed, the appropriate (in)formal caregivers are contacted by phone, in a pre-defined order until someone is found who is able to tend to the elderly. The help desk thus does not take into account the current context, e.g., location or current tasks of the (in)formal caregivers to assign the alarm.. This leads to unnecessary delays and distractions, as caregivers are often called although they are unavailable. Moreover, a caregiver who is far away is often called, while a nearby (in)formal caregiver, e.g., a neighbor, could more quickly assess the situation or even tend to the alarm. In case the elderly is injured as a result of the fall, quick response and intervention is of the utmost importance.. To counter undetected falls, false alarms and long intervention times, the FallRisk project 2 aims to develop a social-and context-aware multi-sensor framework, called the OCarePlatform, which is able to automatically and accurately assess the fall risk of the elderly, detect falls and assign the alarms to (in)formal caregivers by taking their current context into account. The home of the elderly is equipped with a plethora of sensors and one or more fall detection systems.. The OCarePlatform collects and integrates all the monitoring data, gathered by these devices. Unorganized, unprocessed raw data can be voluminous, but has no meaning on itself as it has no relationships or context. Information is data that has been given meaning by defining relational connections. For this, the platform uses an ontology [4] , which is a semantic model that formally describes the concepts in a certain domain, their relationships and attributes. This way, an ontology encourages re-use and integration. Knowledge models and more specifically ontologies are already used in medicine and care [5, 6, 7] . By managing the data about the current context in an ontology, intelligent algorithms can be more easily defined that take advantage of this information to accurately assess the fall risk and detect calls. The envisioned fall risk and detection work processes supported by the OCarePlatform are visualized in Figure 1 (b).. First, by monitoring the behavior of the elderly, based on the integrated sensor information, the OCarePlatform automatically checks whether the elderly is compliant with the given advice. Moreover, the Activities of Daily Living (ADL) patterns can be monitored. If a change in these patterns is detected, this might indicate a potentially higher risk for falls. In case of non-compliance or increased fall risks are detected, the appropriate caregivers are notified and informed of the gathered contextual information. This supports pro-active follow-up of the fall risk. The intervention of experts can thus be optimized in view of the time and point of need and the early warnings can contribute to increased effectiveness in view of fall prevention.. Second, the OCarePlatform also aims to reduce the amount of false alarms and undetected calls, by integrating the information, gathered by the fall detection systems with the available context information.. Third, the OCarePlatform also gathers context information about (in)formal caregivers associated with the elderly. It uses this information to more effectively assign one or more (in)formal caregivers to the alarm.. For example, when an alarm button is pushed, but the context information suggests that it is a false alarm with a high probability, the help desk operator can contact a close by neighbor or other person. After a specific time, the help desk operator will contact this informal caregiver to check if it was actually a false alarm and to exchange information about the gravity of the alarm. When a caregiver and help desk receive an alarm, they also receive all the context information, which is perceived as important at that time, e.g., the last known location of the elderly, his or her fall risk and the sensor or detection system that caused the alarm. Finally, feedback given by the caregiver network after an alarm situation or follow-up of fall risk assessment, initiated by a notification of the OCarePlatform, will allow the OCarePlatform to adapt to the needs and preferences of the caregiver and the elderly.. In this paper, a platform is presented capable of interacting with a wide range of heterogeneous sensors. Moreover, the platform is designed in such a way that intelligent, semantic techniques are used in order to deliver just-in-time information, about fall risk and fall detection, to the elderly and their (in)formal caregivers. The remainder of this paper is organized as follows. In Section 2, an overview is given of the current state of the art. Section 3 details the general architecture of the proposed FallRisk system. Illustrative scenarios are detailed in Section 4 to highlight the possibilities of the proposed system and ontologybased reasoning. Sections 5, 6 and 7 further detail the different components of the system, namely the used continuous care ontology, the sensor-based monitoring system and the ontology-based OCarePlatform. Section 8 details the implemented Proof of Concept to demonstrate the feasibility of the proposed FallRisk system. Finally, Section 9 highlights the conclusions and future work. A social-and context-aware multi-sensor platform was presented, which integrates information gathered by a plethora of fall detection systems and sensors at the home of the elderly, by using an ontology. This integrated contextual information allows to automatically and continuously assess the fall risk of the elderly, to more accurately detect falls and identify false alarms and to automatically notify the appropriate caregiver, e.g., based on location or current task.. It is important to note that presented platform does not need to be equipped with all the possible fall detection systems and available sensors to result in a reliable fall risk assessment and detection set-up. Depending on the needs and preferences of the elderly, the most appropriate devices should be selected that complement each other and lead to a reliable set-up for continuous monitoring.. In order to prove the viability of our proposed architecture and to evaluate the feasibility of injecting multi-sensor data into a reasoning system, the different components of the architecture have been implemented, integrated and tested in a Proof of Concept. Future work will focus on how the platform and the profile and context information it gathers can be leveraged to give a suggestion of which systems and sensors should be integrated in the house of a particular elderly. Figure 1 (a).. In the envisioned process, as shown in Figure 1 The SCB uses an intelligent filtering system, by using core ontologies and filter rules, which is capable of sending only the useful data to the MCI Services.. The MCI Services use a Context Manager, which contains (a subset of) the core ontologies used by the SCB, to specify the context they are interested in by defining filtering rules and registering them with the Context Disseminator.. The MCI Services will generate new information in the form of MCK and sent this through the Gateway Service back to the Controllers. The Controllers will then notify the assigned (in)formal caregiver based on the information within the MCK. This network has been integrated into a portable flight case. For elderly people fall incidents are life-changing events that lead to degradation or even loss of autonomy. Fall risk assessment is based on standardized tests carried out on long time intervals. Current fall detection systems are not integrated with other information technologies and often associated with undetected falls and/or false alarms. When a fall is detected, the systems employ a help desk that contacts the (in)formal caregivers in a pre-defined order, which leads to delays and distractions. Moreover, the desktop operator has no additional information an the situation the elderly is currently in and is not capable of assessing how severe the fall incident was. They also often lose time on calling the caregivers in the pre-defined order, time that could be very valuable.. In this paper, a social-and context-aware multi-sensor platform is presented, which integrates information gathered by a plethora of fall detection systems and sensors at the home of the elderly, by using a cloud-based solution, making use of ontologies. This integrated contextual information allows to automatically and continuously assess the fall risk of the elderly, to more accurately detect falls and identify false alarms and to automatically notify the appropriate caregiver, e.g., based on location or current task. The platform presented is capable of interacting with a wide range of heterogeneous sensors. Moreover, it is designed in such a way that intelligent, semantic techniques are used in order to deliver just-in-time information, about the fall risk and fall detection, to the elderly and their (in)formal caregivers.. It is important to note that presented platform does not need to be equipped with all the possible fall detection systems and available sensors to result in a reliable fall risk assessment and detection set-up. In order to evaluate the proposed platform, a proof of concept was implemented, making use of a portable sensor testbed and off-the-shelf sensors, which can easily be integrated within the platform. In addition, a visualizer was developed to visualise the complex dataflow within the cloud-based OCarePlatform. Both the portable sensor testbed and the visualizer make it possible to improve the platform by getting feedback from both the elderly and the caregivers by means of an interdisciplinary approach. Systems and solutions developed to detect falls, can be divided into three different approaches based on the used data and sensors [8] . The first approach is based on the use of wearable devices and sensors, such as accelerometers and posture sensors. The second one is classified as ambient device based. In this approach, an attempt is made to create a fall detection system, by using video data, audio data and/or other event sensing. Finally, the last approach uses. cameras to detect falls or analyze ADLs.

O O O O B O B I O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O B O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O B O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O B I O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O


Dynamics and bifurcations of the adaptive exponential integrate-and-fire model Abstract Recently, several two-dimensional spiking neuron models have been introduced, with the aim of reproducing the diversity of electrophysiological features displayed by real neurons while keeping a simple model, for simulation and analysis purposes. Among these models, the adaptive integrate-and-fire model is physiologically relevant in that its parameters can be easily related to physiological quantities. The interaction of the differential equations with the reset results in a rich and complex dynamical structure. We relate the subthreshold features of the model to the dynamical properties of the differential system and the spike patterns to the properties of a Poincaré map defined by the sequence of spikes. We find a complex bifurcation structure which has a direct interpretation in terms of spike trains. For some parameter values, spike patterns are chaotic. The adaptive exponential integrate-and-fire model (Brette and Gerstner 2005 ) is able to reproduce many electrophysiological features seen in real neurons, with only two variables and four free parameters. Besides, its parameters have a direct physiological interpretation. In the framework of this model, we can define an electrophysiological class as a set of dynamical properties for different values of the input I (for given parameter values). In this paper, we tried to provide a classification of the parameter space as complete as possible, which is summarized for subthreshold dynamics in Fig. 3 . The subthreshold dynamics depends only on the ratio of time constants (τ m /τ w ) and on the ratio of conductances (a/g L ), but is already non-trivial. The model can have excitability type I or II depending on the parameters. It may act as an oscillator or an integrator depending on the eigenvalues associated to the resting point. It may spike in response to hyperpolarizing currents (rebound), depending on the properties of the attraction basin of the stable fixed point, which is bounded by either a limit cycle or a separatrix. A similar classification was done by Richardson et al. (2003) in the context of a linear two-dimensional integrate-and-fire model. Their results correspond in the present model to the case when the exponential term (sodium current) is negligible, that is, for low voltages, as in the asymptotic analysis described in Appendix 4. The main difference is that the input current can change the resonance properties of the model, as shown in Fig. 3 . The spiking dynamics is even more rich, as it also depends on the reset parameters b and V r . We related the spike patterns with orbits under a discrete Poincaré map Φ, and found a rich bifurcation structure including even chaos. Regular spiking corresponds to a stable fixed point of Φ, bursting corresponds to periodic orbits under Φ and irregular spiking corresponds to chaotic orbits under Φ. Transition from regular spiking to periodic and chaotic bursting was previously described in three-dimensional continuous models such as the Hindmarsh-Rose model (Wang 1993) .. Most of the results shown in this paper generalize to two-dimensional spiking models in which the first (membrane) equation is dV /dt = F(V ) + I − w, where F is a smooth convex function whose derivative is negative at −∞ and infinite at +∞ (in particular, Izhikevich model and the quartic model have these properties). We are currently working on the mathematical proofs of these results in that more general setting and on a more complete picture of the spiking dynamics (Touboul and Brette 2008) . This work will provide both a dynamical system understanding of the the spiking properties of the model and analytical methods to relate the parameter values with electrophysiological classes. Another interesting line of research is the investigation of the responses of such bidimensional models to time-varying inputs, as was done in Brette (2004) for one-dimensional integrateand-fire models.. Hence it appears for the class A parameters. After the Bogdanov-Takens point, the equilibrium associated with x + is unstable, hence does not give rise to damped subthreshold oscillations.. It is easy to show that 1/(4τ w )(1 −τ w ) 2 < 1/τ w . When a = 1/τ w , we haveĪ + = (1+ā)(log(1+ā)−1), which is the current at the Bogdanov-Takens bifurcation point. This result was predictable since around the saddle node bifurcation the system does not oscillate around the fixed point and around the Andronov-Hopf bifurcation the system does oscillate, and these two curves meet at the Bogdanov-Takens point. Furthermore, after the Bogdanov-Takens point, the equilibrium associated with x + is no more stable, hence damped subthreshold oscillations associated with this separatrix only appear in the class A parameters.. The oscillations possibly disappear when a solution to e v − = x − exists. These solutions exist whenτ w > 1 and a ≤τ w 4 (1 − 1 τ w zones, which we call North, South, West, East and Center, as shown in Fig. 1 . The stable manifold consists in two trajectories which converge to the saddle fixed point. Near the saddle point, these two trajectories must lie in the North and South zone, or in the Center and East zones.. First we remark that all the trajectories starting from the East zone must spike. Indeed, in that region, V increases and w decreases, until it crosses the w-nullcline horizontally and enters the South zone. From that point, V keeps on increasing and w increases, which implies that the trajectory can only remain in the South zone or enter the East zone. However, the direction of the vector fields along the border does not allow crossing from South to East. Therefore, the trajectory will remain in the South zone and will spike. It follows that no part of the stable manifold can be in the East zone. Therefore it has to be locally in the North and South zones. By following the manifold from the saddle point to the North, we can see that V and w increase and, since the manifold cannot enter the East zone, it remains in the North zone and goes to infinity. In practice, it is in fact very close (but slightly to the left) of the V -nullcline, as shown in Fig. 4 .. By following the manifold from the saddle point to the South, we can see that it has the same orientation as in the North zone, as long as it remains in the South zone. It may however cross the w-nullcline (Fig. 4d) , and possibly the V -nullcline again (Fig. 4b ).

O O B O O O O B O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


Finding falls in ambulatory care clinical documents using statistical text mining Objective To determine how well statistical text mining (STM) models can identify falls within clinical text associated with an ambulatory encounter. Materials and Methods 2241 patients were selected with a fall-related ICD-9-CM E-code or matched injury diagnosis code while being treated as an outpatient at one of four sites within the Veterans Health Administration. All clinical documents within a 48-h window of the recorded E-code or injury diagnosis code for each patient were obtained (n=26 010; 611 distinct document titles) and annotated for falls. Logistic regression, support vector machine, and cost-sensitive support vector machine (SVM-cost) models were trained on a stratified sample of 70% of documents from one location (dataset A train ) and then applied to the remaining unseen documents (datasets A test -D). Results All three STM models obtained area under the receiver operating characteristic curve (AUC) scores above 0.950 on the four test datasets (A test -D). The SVM-cost model obtained the highest AUC scores, ranging from 0.953 to 0.978. The SVM-cost model also achieved F-measure values ranging from 0.745 to 0.853, sensitivity from 0.890 to 0.931, and specificity from 0.877 to 0.944. Discussion The STM models performed well across a large heterogeneous collection of document titles. In addition, the models also generalized across other sites, including a traditionally bilingual site that had distinctly different grammatical patterns. Conclusions The results of this study suggest STM-based models have the potential to improve surveillance of falls. Furthermore, the encouraging evidence shown here that STM is a robust technique for mining clinical documents bodes well for other surveillance-related topics. Fall-related injuries are an important healthcare issue, especially among aging populations. A recent study found approximately 40% of people age 70 years and older reported falling during a 1-year period. 1 Injuries due to falls are a leading cause of death and disability among older adults, 2 with direct costs totaling almost US$20 billion annually for people 65 years and older in the USA. 3 A national study of emergency department (ED) visits between 2001 and 2008 found that fallrelated hospitalizations in older adults increased 50%, from 373 128 to 559 355 cases with the age-adjusted incidence rate, expressed per 100 000 population, increased from 1046 to 1368. 4 While most estimates of treatment for fall-related injuries come from hospital ED data, a recent national survey estimated that treatment for more than 50% of 76 million non-fatal acute injuries (most of which were fall injuries) occurred in ambulatory care settings outside of hospital ED. 5 A history of a previous fall is one of the most important clinical indicators that identify an elderly patient as being at high risk of future falls. 6 However, falls have been found to be under-coded in administrative databases, 7 making it difficult to identify at-risk patients and thus take steps to help prevent falls. An alternative source of fall-related information may be found in the clinical text associated with a patient's electronic health record (EHR). This study explores how well falls, associated with an ambulatory encounter for the treatment of an injury, can be identified in clinical text.. The Veterans Health Administration's (VHA) EHR contains almost two billion clinical documents (Scott DuVall, personal communication, 2012) and provides a rich repository to assess the effectiveness of automated text-based surveillance systems. Given this resource, we explored how well statistical text mining (STM), a machine learning approach that represents documents as a 'bag of words', could classify individual clinical documents (progress notes, reports, etc.) as being fall related or not. Within the VHA's EHR, clinical documents are assigned a title that reflects either the place of service or clinical author. Example titles include 'Emergency Department' progress notes, 'Nursing Triage' progress notes, or 'Orthopedic Surgery Consult' progress notes. As patients may receive care for a fall from multiple sources (eg, ED, outpatient clinic), fall-related information is likely to be found in a variety of document titles. We therefore selected a heterogeneous collection of documents, representing a wide variety of document titles, each with varying clinical sublanguages, 8 to help maximize the discovery of fall-related documents and assess model performance across a variety of document types. Finally, we also explored how well our models generalized by building models using a single site and then applying those models to three other sites. This method mimics situations in which a system is built and used at a single facility and then later rolled out to other facilities. This study demonstrated that STM could reliably identify falls in clinical text related to ambulatory events. Using a dataset of over 26 000 documents, the STM models were able to obtain AUC scores above 0.95 across four sites and over 600 distinct document titles. The results of this study suggest that STM-based fall models have the potential to improve surveillance of falls. For instance, patients could be flagged in real time as being at a higher risk of a fall given a history of falls documented in their EHR. In addition, results can be rolled up to the patient level of analysis to obtain regional or national statistics of fall prevalence for safety reporting measures. Finally, STM may also be useful in identifying other fall-related issues that may be buried within text, such as the place the fall occurred (for reimbursement purposes) or the type of injury sustained. Finally, the encouraging evidence shown here that STM is a robust technique for mining clinical documents bodes well for other surveillance-related topics. This study demonstrated the effectiveness of STM in identifying falls in clinical text by maintaining AUC scores above 0.95 across multiple sites with diverse document types. Of the 611 distinct document types in the corpus, almost half had at least one document annotated as a fall, highlighting the fact that fallrelated information may be found in numerous places within the EHR. If the analysis had been restricted to the 10 most frequent document types (by number of falls, see figure 1) , only half the available fall documents would have been found. If instead document types were selected based on prevalence, the top 10 document types (with at least 10 fall documents) would have resulted in less than 30% of available fall documents being found. Therefore, surveillance systems seeking to uncover evidence of fall-related information should not be constrained to a small subset of document types, considering the potential difficulty in selecting document types a priori. In addition, such systems must be capable of handling a large heterogeneous collection of document types, while still retaining acceptable performance.. In addition to the STM models being able to account for content variation within document types at a particular site, we also assessed the generalizability of the STM models across sites. The goal was to provide an indication of how well a STM-based fall surveillance system would perform outside of the facility in which it was developed. Overall, our results were promising, with AUC scores in the 0.95 range for the three additional sites. However, because our three test sites were all located within the same region, additional work is needed to determine how well our STM models would perform in a nationwide system. An interesting aspect of our dataset is that one of the sites was Therefore, the use of natural language processing (NLP) in conjunction with STM may be useful in reducing errors found within the context-dependent error categories uncovered during our error analysis (eg, HISTORY, NEGATION, SEMANTIC). Given the presence of templates and a general lack of grammatically correct sentences in the documents, hybrid NLP-STM systems should be evaluated carefully because the use of NLP may also introduce additional errors into the process. A limitation of STM, and all techniques relying on documentation in the EHR, is that only reported and documented falls can be identified. Therefore, STM is not able to find falls when the patient does not mention or recall a fall occurring or the clinician does not document the fall. Several authors have suggested lack of clinician inquiry or patient recall impacts the identification of a previous fall as a risk factor. 43 44 The design of this study probably limits this concern in our data because inclusion was based on seeking care for an injury. Typically, a fall was documented as part of the 'chief complaint' or 'history of present illness' section within a document. This represents a relatively straightforward observation, relevant to the primary diagnoses related to the ambulatory care visit. Therefore, it is likely that clinicians would remember to include this information in the text even if they are unaware of or forget to include specialized ICD-9-CM codes designed to document the occurrence of a fall (E-880-889). This study supports this contention, as over 25% of the documents classified as positive for a fall in the test datasets were from patients with no recorded fall E-code. We believe STM represents an opportunity to supplement information available from the EHR to clinicians and policy makers on this important healthcare issue. Processing the documents from the A train dataset resulted in a sparse term-by-document matrix of 14 762 terms from 6641 round of model refinement. Therefore, the C parameter was kept at the default value of 1. The SVM-cost model used the same parameter settings as the SVM model. In addition, a cost ratio of 1:1.5 FP to FN was used for the SVM-cost model because it resulted in the most balanced performance between sensitivity and specificity (see figure 2) . Table 3 details the results obtained for each model type for both the training and testing datasets. The results from the best models from the model selection and refinement process on the A train dataset are shown at the top followed by the results of applying these models to the various test datasets. (AUC values for A train were averaged over all folds as recommend by Forman and Scholz. 40 All other measures for A train were calculated based on the sum of true positives, true negatives, FP, and FN from all folds.) Figure 3 displays the AUC, F-measure, positive predictive value (PPV), and negative predictive value (NPV) values obtained from each model across all the datasets. The SVM-cost model had the highest AUC across all five datasets, with AUC values ranging from 0.953 to 0.978. However, the maximum difference Figure 3 Performance measure charts by model and dataset. AUC, area under the receiver operating characteristic curve; LR, logistic regression; NPV, negative predictive value; PPV, positive predictive value; SVM, support vector machine; SVM-cost, support vector machine cost sensitive. Access the article online to view this figure in colour.. in AUC between the LR, SVM, and SVM-cost models on any dataset was only 0.02 (dataset B). Compared to the A train dataset, all three models performed quite similarly on the A test dataset, with the largest absolute change being a decrease in sensitivity by 0.02 points for the SVM model. The models performed less well on the other test datasets, with the largest decreases from A train being in sensitivity for all three models for dataset B (0.058-0.117), PPV for all three models (0.139-0.150) for dataset C, and accuracy (0.039), sensitivity (0.042), and specificity (0.061), for the LR, SVM, and SVM-cost models for dataset D. As expected, assigning a greater cost to FN for the SVM-cost model caused measures heavily influenced by FP (eg, specificity and PPV) to be consistently lower than the other two models (average difference of 0.046 and 0.094 for specificity and PPV vs the best performing models from LR and SVM). However, the SVM-cost model was able to maintain an average increase of 0.106 in sensitivity over the next highest model's sensitivity across the test datasets. Figure 4 shows the receiver operating characteristic curves for the LR and SVM models for all four test datasets. (The receiver operating characteristic curves for the SVM-cost models are very similar to the SVM models and are not shown to ease readability.) Very little difference is seen between the LR and SVM models for almost all sensitivity values in the A test dataset. For the other test datasets, the LR and SVM models also perform similarly to one another in the very high sensitivity ranges. The overall performance levels are remarkably similar, even though the models use different weighting schemes and overlapping, rather than identical, feature sets. There are some slight variations, with the LR model doing a bit better than the SVM model when the sensitivity ranges from approximately 0.90 to 0.95, 0.94 to 0.97, and 0.90 to 0.93 in the B, C, and D datasets, respectively. Conversely, the SVM model performs slightly better than the LR model at lower sensitivity levels; in particular, when the sensitivity ranges from approximately 0.70 to 0.87, 0.65 to 0.80, and 0.80 to 0.85 in the B, C, and D datasets, respectively. However, these differences are minor and both models represent appropriate choices for this classification task. Figure 5 displays the unique number of misclassified documents for each individual model and all combinations of models by error type (FP and FN) . For example, figure 5A shows 562 documents (2.9%) were misclassified as FP by all three models, while only 26 documents (0.1%) were solely misclassified by the LR model. An error analysis on a sample of 180 documents (92 FP and 88 FN) from all the groups shown in figure 5 revealed 11 categories of errors. Table 4 lists each error category and an example. Except for the UNSURE category, a document could be classified into more than one category. For instance, several documents contained templates that were used to identify patients at risk of a fall. Therefore, these documents were classified in both the TEMPLATE and FALL RISK categories. Overall, the majority of errors were described in six categories: UNSURE, FALL RISK, TEMPLATE, JUDGMENT, FALL-RELATED INFORMATION, and HISTORY.. The UNSURE category included documents in which the reason for a misclassification was not apparent. Many documents within the UNSURE category contained clear documentation of a fall or fall-related injury occurring (see example in table 4). Documents were classified into the FALL RISK category when information identified a patient as at risk of a fall, but the reason for the patient's visit was not for treatment of an injury due to a fall. How patients were flagged as being at risk of a fall differed by site. One site commonly included the text 'Fall-risk' in the patient's document, whereas other sites included fall risk models, such as the Hendrich II fall risk model 41 or Morse fall scale, 42 as templates. In addition to fall risk models, the TEMPLATE category also included templates associated with fall prevention. These templates often contained terms predictive of a fall, thus leading to FP.. The JUDGMENT category included documents in which the classification of 'fall' or 'not fall' was not obvious and required further clinical judgment. The example shown in table 4 highlights a scenario in which an elderly patient may not want to be identified as having fallen. The patient may thus report a fall by saying they 'let themselves down' or 'slide himself from the wall to the floor'. The FALL-RELATED INFORMATION category contained documents with information related to, but not specifically about, a fall occurring. For instance, the example shown in table 4 is from a physical therapy document describing a patient's goal to complete an exercise without falling down. The final major category, HISTORY, contained documents in which a patient had fallen in the past; however, the current visit was not related to a fall.. The less frequently occurring categories included errors in annotations (INCORRECT ANNOTATIONS), presence of negation (NEGATION), misspellings (eg, 'falll'), incorrect word usage (eg, 'felt', 'feel'), and wrong word sense (eg, fall from one plane to another vs the season) (SEMANTIC), and other errors such as asserting a fall on someone or something other than the patient (eg, 'green beans fell to the floor') (OTHER). In addition, this project did not consider an accident from a motor vehicle as a fall (MOTOR VEHICLE ACCIDENT). Therefore, documents describing a patient falling off a motorcycle or from a golf cart were not considered to be falls. STM is an inductive approach based on machine learning that uncovers patterns from textual documents such as clinical progress notes. STM induces structure on unstructured text by representing each document within a term-by-document matrix, in which each term from the document collection is represented in the matrix. The cells of the term-bydocument matrix consist of counts or weightings of how many times a particular term occurs within a document. Patterns based on these counts can then be derived and used for both unsupervised (eg, clustering) and supervised (eg, classification) tasks. An overview of text classification using machine learning can be found in Sebastiani. 9 STM has been commonly used to prioritize and/or categorize biomedical literature to help reduce the effort associated with curating articles. [10] [11] [12] In this area, numerous article-based classification challenges and tasks have been introduced to help spur the development and comparison of tools, as well as to provide readily available datasets. For instance, the 2004 and 2005 Text REtrieval Conference (TREC) Genomics track contained tasks to determine whether articles should be examined for curation in the Mouse Genome Informatics (MGI) system. [13] [14] [15] The BioCreative II and III challenges also had tasks to classify and rank articles based on their likelihood of having protein-protein interactions of interest. 16 17 In other medically related areas, challenges have also been organized that are well suited for STM. For instance, classifying patient smoking status (first informatics for integrating biology and the bedside (i2b2) shared task) 18 and determining sentiment found in suicide notes (fifth i2b2/VA/Cincinnati shared task). 19 Outside of community organized challenges, STM has also been used to augment terms for ontology development, 20 classify foot examination findings, 21 detect infectious disease outbreaks from data on the web, 22 23 and highlight adverse events of anaphylaxis in US vaccine adverse event reporting system reports about H1N1. 24 Related specifically to falls, our previous work used both supervised and unsupervised STM to identify falls from clinical text. 7 In this current work, we focus strictly on supervised STM, and conduct a more comprehensive analysis across a larger dataset spanning multiple facilities.

O O O B I O O O O B I O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


Solving large sparse linear systems in a grid environment: the GREMLINS code versus the PETSc library Abstract Solving large sparse linear systems is essential in numerous scientific domains. Several algorithms, based on direct or iterative methods, have been developed for parallel architectures. On distributed grids consisting of processors located in distant geographical sites, their performance may be unsatisfactory because they suffer from too many synchronizations and communications. The GREMLINS code has been developed for solving large sparse linear systems on distributed grids. It implements the multisplitting method that consists in splitting the original linear system into several subsystems that can be solved independently. In this paper, the performance of the GREMLINS code obtained with several libraries for solving the linear subsystems is analyzed. Its performance is also compared with that of the widely used PETSc library that enables one to develop portable parallel applications. Numerical experiments have been carried out both on local clusters and on distributed grids. Numerous scientific applications must solve large sparse linear systems. Because of considerable requirements in terms of memory allocation and execution time, it may happen that these computations cannot be carried out on a single-processor computer. Several multiprocessor environments exist, such as parallel machines or clusters of computers. A grid may be defined as a set of interconnected local clusters. The large number of processors it offers may be a relatively inexpensive answer to growing computational needs. Because of the variety of machines and interconnection networks it is usually composed of, a grid is a heterogeneous environment. Since the performance of numerical algorithms, designed to run on parallel homogeneous computers, may be unsatisfactory on such a grid, new coarse-grained and asynchronous efficient parallel algorithms must be proposed.. The GREMLINS 1 code has been developed to solve efficiently large sparse linear systems on a grid [13] . It implements the multisplitting method [26, 29] which is based on a decomposition of the matrix into rectangular submatrices. Each processor belonging to the grid solves linear subsystems using either a direct or an iterative method. Successive approximations to the global solution are computed. These iterations can be performed in a synchronous or in an asynchronous mode. With the first version of the GREMLINS code, the linear subsystems could be solved using direct methods from the MUMPS 2 library [1] or the SuperLU 3 library [15] or using iterative methods from the SparseLib 4 library [16] . The PETSc 5 library [6] is a popular suite of data structures and routines for scientific computing. Applications developed with PETSc are portable: a common code can be run on a sequential machine or on various parallel architectures. PETSc employs the MPI 6 standard for all messagepassing communication. By paying particular attention to memory allocation, PETSc takes full advantage of parallel machines. For solving linear systems with PETSc, various iterative methods and also direct methods from external libraries can be used.. The originality of this paper lies in the two different types of work it describes. First, the GREMLINS code has been improved to allow each processor in a grid to use PETSc for solving its linear subsystems. Second, the performance of the PETSc library for solving large linear systems has been compared with that of the GREM-LINS code, both on a local cluster and on a grid consisting of processors from several geographical sites.. In [13] , the initial version of this work is described. In particular, the complete multisplitting algorithm with many implementation details is presented. The CRAC environment which enabled the implementation of asynchronous iterative algorithms is described. However, as this work was less advanced, the systems solved in [13] could not be as large as now. In the present paper, important features of this previous work are reminded, so that it can be self-contained. The focus is put on experiments showing the relevancy of this present work. In particular, the GMRES method implemented in PETSc is compared, as an inner solver, to other solvers (SparseLib, MUMPS and SuperLU). Furthermore the GREMLINS code is compared with PETSc, the standard sparse matrix solver. This comparison highlights that with geographically distant sites, this standard solver is not so efficient.. This paper is organized as follows. In Sect. 2 some related works are presented and discussed. The principles of the multisplitting method and the architecture of the GREMLINS code are presented in Sect. 3. Numerical experiments are described in Sect. 4. First, the performance of the GREMLINS code has been analyzed, several possible libraries being used to solve serially the linear subsystems generated by the multisplitting method. Then the performance of the PETSc library and that of the GREMLINS code have been compared. Both numerical experiments have been carried out in a local and in a distant context. Section 5 presents concluding remarks and planed perspectives. Many scientists are interested in solving large sparse linear systems. Solvers can be classified into direct or iterative methods. Concerning direct methods, the most efficient ones are based on the LU decomposition [18, 22] . Because of the complexity of the elimination process in direct methods, iterative methods are usually preferred for very large systems. A wide range of iterative methods is available [28] : for example, Jacobi, Gauss-Seidel and Krylov subspace methods (such as conjugate gradient, GMRES, BICGSTAB) can be cited. The convergence of iterative methods can be improved by preconditioners such as the Successive Over Relaxation (SOR) preconditioner [23] and sparse approximate inverse preconditioners that are based on factorized sparse approximate inverses or on the minimization of some convenient norm [12, 21] . Recently, explicit approximate inverse preconditioners have been introduced for solving sparse linear systems [17, 19, 20] . In [7] , interested readers will find issues for implementing iterative methods in a sequential manner. Most solvers have also been designed in parallel to leverage computation power of clusters. Nevertheless, few methods have been adapted in the context of grid computing with geographically distant clusters.. One concern in the parallelization of solvers is the identification of synchronization points. In Krylov methods, which are based on projections into Krylov subspaces, the computation of a vector (by a matrix-vector product) is usually followed by its orthogonalization against a set of vectors. Inner products in the orthogonalization act as synchronization points. Designed to obtain more parallelism and data locality, the s-step variants [10, 11] consist in generating a basis for the Krylov subspace first, and to orthogonalize this set afterward. They showed satisfactory performances on homogeneous multiprocessor machines. However in a heterogeneous environment, algorithms must be both asynchronous and coarse-grained.. A hybrid version of GMRES is presented in [30] . This method combines a parallel GMRES method with the least square method that requires some eigenvalues obtained from a parallel Arnoldi algorithm. In the paper, only small matrices are considered: the largest one has only 3,600 unknowns.. The implementation of a parallel 3D solver based on Navier-Stokes system is described in [24] . The solver is built with Globus. Experiments are also quite small since the number of unknowns is less than 20,000.. In [13] , large sparse linear systems are solved in a grid computing context using GREMLINS. In this work, only direct solvers are experimented inside the multisplitting method.. A parallel hybrid solver based on both direct methods and iterative methods is presented in [25] . It allows one to solve large matrices but it is only dedicated to homogeneous clusters, not to grid environments.. Except previous works described in [13] , all the solvers cited in this section are based on synchronous iterative methods. One of the originality of the GREMLINS solver is to be able to run either in synchronous or asynchronous iteration mode.

O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


Multiclass feature learning for hyperspectral image classification: sparse and hierarchical solutions In this paper, we tackle the question of discovering an effective set of spatial filters to solve hyperspectral classification problems. Instead of fixing a priori the filters and their parameters using expert knowledge, we let the model find them within random draws in the (possibly infinite) space of possible filters. We define an active set feature learner that includes in the model only features that improve the classifier. To this end, we consider a fast and linear classifier, multiclass logistic classification, and show that with a good representation (the filters discovered), such a simple classifier can reach at least state of the art performances. We apply the proposed active set learner in four hyperspectral image classification problems, including agricultural and urban classification at different resolutions, as well as multimodal data. We also propose a hierarchical setting, which allows to generate more complex banks of features that can better describe the nonlinearities present in the data. Hyperspectral remote sensing allows to obtain a fine description of the materials observed by the sensor: with arrays of sensors focusing on 5-10 nm sections of the electromagnetic spectrum, hyperspectral images (HSI) return a complete description of the response of the surfaces, generally in the visible and infrared range. The use of such data, generally acquired by sensors onboard satellites or aircrafts, allows to monitor the processes occurring at the surface in a non-intrusive way, both at the local and global scale (Lillesand et al., 2008; Richards and Jia, 2005) . The reduced revisit time of satellites, in conjunction with the potential for quick deployment of aerial and unmanned systems, makes the usage of hyperspectral systems quite appealing. As a consequence, hyperspectral data is becoming more and more prominent for researchers and public bodies.. Even if the technology is at hand and images can be acquired by different platforms in a very efficient way, HSI alone are of little use for end-users and decision makers: in order to be usable, remote sensing pixel information must be processed and converted into maps representing a particular facet of the processes occurring at the surface. Among the different products traditionally available, land cover maps issued from image classification are the most common (and probably also the most used). In this paper, we refer to land cover/use classification as the process of attributing a land cover (respectively land use) class to every pixel in the image. These maps can then be used * Corresponding Author: devis.tuia@geo.unizh.ch for urban planning (Taubenböck et al., 2012 (Taubenböck et al., , 2013 , agriculture surveys (Alcantara et al., 2012) or surveying of deforestation (Asner et al., 2005; Naidoo et al., 2012; Vaglio Laurin et al., 2014) .. The quality of land cover maps is of prime importance. Therefore, a wide panel of research works consider image classification algorithms and their impact on the final maps (Plaza et al., 2009; Camps-Valls et al., 2011; Mountrakis et al., 2011; Camps-Valls et al., 2014) . Improving the quality of maps issued from HSI is not trivial, as hyperspectral systems are often high dimensional (number of spectral bands acquired), spatially and spectrally correlated and affected by noise (Camps-Valls et al., 2014) . Among these peculiarities of remote sensing data, spatial relations among pixels have received particular attention (Fauvel et al., 2013) : the land cover maps are generally smooth, in the sense that neighboring pixels tend to belong to the same type of land cover (Schindler, 2012) . On the contrary, the spectral signatures of pixels of a same type of cover tend to become more and more variable, especially with the increase of spatial resolution. Therefore, HSI classification systems have the delicate task of describing a smooth land cover using spectral information with a high within-class variability. Solutions to this problem have been proposed in the community and mostly recur to spatial filtering that work at the level of the input vector (Benediktsson et al., 2005; Vaiphasa, 2006; Fauvel et al., 2013) or to structured models that work by optimization of a context-aware energy function (Tarabalka et al., 2010; Schindler, 2012; Moser et al., 2013) .. In this paper, we start from the first family of methods, those based on the extraction of spatial filters prior to classification. Methods proposed in remote sensing image classifi-cation tend to pre-compute a large quantity of spatial filters related to the user's preference and knowledge of the problem: texture , Gabor (Li and Du, in press ), morphological (Benediktsson et al., 2005; Dalla Mura et al., 2010) or bilateral filters (Schindler, 2012) are among those used in recent literature and we will use them as buiding blocks for our system. With this static and overcomplete set of filters (or filterbank), a classifier is generally trained.. Even if successful, these studies still rely on the definition a-priori of a filterbank. This filterbank depends on the knowledge of the analyst and on the specificities of the image at hand: a pre-defined filterbank may or may not contain the filters leading to the best performances. A filterbank constructed a-priori is also often redundant: as shown in Fig. 1 , the filter bank is generally applied to each band of the image, resulting into a ( f × B)-dimensional filter bank, where f is the number of filters and B the number of bands. Proceeding this way proved in the past to be unfeasible for high dimensional datasets, such as hyperspectral data, for which the traditional way to deal with the problem is to perform a principal components analysis (PCA) and then extract the filters from the p << B principal components related to maximal variance (Benediktsson et al., 2005) . In that case, the final input space becomes ( f × p)-dimensional. A first problem is related during this dimension reduction phase, for which the choice of the feature extractor and of the number of features p remains arbitrary and may lead to discarding information that is discriminative, but not related to large variance. Therefore, a first objective of our method is to avoid this first data reduction step. But independently to the reduction phase, this goes against the desirable property of a model to be compact, i.e., to depend on as few input variables as possible. Therefore, in most works cited above an additional feature selection step is run to select the most effective subset for classification. This additional step can be a recursive selection (Tuia et al., 2009) or be based on kernel combination (Tuia et al., 2010) , on the pruning of a neural network or on discriminative feature extraction (Benediktsson et al., 2005) .. Proceeding this way is suboptimal in two senses: first, one forces to restrict the number and parameters of filters to be used to a subset, whose appropriateness only depends on the prior knowledge of the user. In other words, the features that are relevant to solve the classification problem might not be in the original filterbank. Second, generating thousands of spatial filters and use them all together in a classifier, that also might operate with a feature selection strategy, increases the computational cost significantly, and might even deteriorate the classification accuracy because of the curse of dimensionality. Note that, if the spatial filters considered bear continuous parameters (e.g. Gabor or angular features), there is theoretically an infinite number of feature candidates. This paper tackles these two problems simultaneously: instead of pre-computing a specific set of filters, we propose to interact with the current model and retrieve only new filters that will make it better. These candidate filters can be of any nature and with parameters unrestricted, thus allowing to explore the (potentially infinite) space of spatial filters. This leads to an integrated approach, where we incrementally build the set of filters from an empty subset and add only the filters improving class discrimination. This way of proceeding is of great interest for automatic HSI classification, since the filters are selected automatically among a very large set of possible ones, and are those that best fit the problem at hand.. Two approaches explored similar concepts in the past: Grafting (Perkins et al., 2003) and Group Feature Learning (Rakotomamonjy et al., 2013) , which incrementally select the most promising feature among a batch of features extracted from the universe of all possible features admitted. Since this selection is based on a heuristic criterion ranking the features by their informativeness when added to the model, it may be seen as performing active learning (Crawford et al., 2013) in the space of possible features (in this case, the active learning oracle is replaced by the optimality condition, for which only the features improving the current classifier are selected).. In this paper, we propose a new Group Feature Learning model based on multiclass logistic regression (also known as multinomial regression). The use of a group-lasso regularization (Yuan and Lin, 2007) allows to jointly select the relevant features and also to derive efficient conditions for evaluating the discriminative power of a new feature. In Rakotomamonjy et al. (2013) , authors propose to use group-lasso for multitask learning by allowing to use an additional sparse average classifier common to all tasks. Adapting their model in a multiclass classification setting leads to the use of the sole group-lasso regularization. Note that one could use a 1 support vector machine as in Tuia et al. (2014) to select the relevant feature in a One-VS-All setting, but this approach is particularly computationally intensive, as the incremental problem is solved for each class separately. This implies the generation of millions of features, that may be useful for more than one class at a time. To achieve an efficient multiclass strategy, we propose the following three original contributions: a softmax loss. MLC allows to natively handle several classes without using the One-VS-All approach and has the advantage of providing probabilistic prediction scores that can more easily be used in structured models (such as Markov random fields). 2. We employ a group lasso regularization, which allows to select features useful for many classes simultaneously, even if they do not show the highest score for a single class. This means sharing information among the classes, similarly to what would happen in a multitask setting (LeivaMurillo et al., 2013) . This model, called AS-Bands, is detailed in Fig. 2(a) . 3. We investigate the automatic selection of complex hierarchical spatial filters built as modifications of previously selected filters. This leads to a tree-(or graph-) based feature extraction that can encode complex nonlinear relationship for each class. Such a hierarchical re-processing of features has connections with deep neural networks (LeCun et al., 1989 (LeCun et al., , 1998 , which have recently proven to be able to improve significantly the performance of existing classification methods in computer vision (Chatfield et al., 2014; Girshick et al., 2014) . This model, called ASH-bands, is detailed in Fig. 2(b) .. We test the proposed method on two landcover classification tasks with hyperspectral images of agricultural areas and on one landuse classification example over an urban area exploiting jointly hyperspectral and LiDAR images. In all cases, the proposed feature learning method solves the classification tasks with at least state of the art numerical performances and returns compact models including only features that are discriminative for more than one class. Among the two method proposed, the hierarchical feature learning tends to outperform the shallow feature extractor for traditional classification problems. However, when confronted to shifting distributions between train and test (i.e. a domain adaptation problem), it provides slightly worse performances, probably due to the complexification of the selected features, that overfit the training examples.. The remainder of this paper is as follows: Section 2 details the proposed method, as well as the multiclass feature selection using group-lasso. In Section 3 we present the datasets and the experimental setup. In Section 4 we present and discuss the experimental results. Section 5 concludes the paper. In this paper, we proposed an active set algorithm to learn relevant features for spatio-spectral hyperspectral image classification. Confronted to a set of filters randomly generated from the bands of the hyperspectral image, the algorithm selects only those that will improve the classifier if added in the current input space. To do so, we exploit the optimality conditions of the optimization problem with a regularization promoting groupsparsity. We also propose a hierarchical extension, where active features (firstly bands and then also previously selected filters) are used as inputs, thus allowing for the generation of more complex, nonlinear filters. Analysis of four hyperspectral classification scenarios confirmed the efficiency (we use a fast and linear classifier) and effectiveness of the approach. The method is fully automatic, can include the user favorite types of spatial or frequency filters and can accommodate multiple co-registered data modalities.. In the future, we would like to extend the hierarchical algorithm to situations, where a datasets shift has occurred between the training and testing distribution: we observed that the proposed hierarchical algorithm yields lower performances on data with spectral distortion between training and test data, as in the Houston 2013B dataset. Moreover, connections to deep neural nets can be better formalized and lead to more principled way of exploring and choosing the features.

O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


Compositional Approach applied to Loop Specialization Abstract. An optimizing compiler has a hard time to generate a code which will perform at top speed for an arbitrary data set size. In general, the low level optimization process must take into account parameters such as loop trip count for generating efficient code. The code can be specialized depending upon data set size ranges, at the expense of code expansion and decision tree overhead. We propose for loop structures a new method to specialize code at the assembly level, cutting drastically the overhead cost with a new folding approach. Our technique can generate and combine sequentially at the assembly level several versions, tuned for small, medium and large iteration number. We first show on the SPEC benchmarks the need for specialization on small loops. Then we demonstrate the benefit of our method on kernels with detailed results. An optimizing compiler has a hard time to generate a code which will perform at top speed for an arbitrary data set size. In general, Schwiegelshohn et al. [1] have shown there is no one best scheduling function for a loop, for all possible data sets. Even for regular programs, the best latency is only reached asymptotically [2, 3] , for large iteration counts. Splitting loop index to obtain better schedules [4] , or tiling iteration domains are well known techniques that improve latency. These transformations are driven according to source code features such as dependencies or memory reuse. On the other hand, low level optimizations must take into account parameters such as loop trip count for generating efficient code: for example, short loop trip count would favor full unrolling while very large loop trip counts will favor deep software pipelining. To some extent, the code generated has to be specialized depending upon data set size ranges and then has to use extensive versioning to apply these different specialized versions. The classical drawback of such an optimization scheme is code expansion and decision tree overhead. It usually puts a hard limit on the total number of different specialized versions generated.. We propose, for loop structures, a new method to specialize code at the assembly level and to drastically cut the overhead cost with a new folding approach. Taking the assembly code, we are able for instance to generate three versions tuned for small, medium and large iteration number. We combine all these versions into a code that switches smoothly from one to the other while the iteration count increases. Hence, the resulting code achieves the same level of performance as each version on its specific iteration interval.. We first show on the SPEC benchmarks the need for specialization on small loops. Then we demonstrate the benefit of our method on kernels optimized with software pipeline, with experimental results. The stem of our work is the diagnosis that in scientific computing a consequent fraction of execution time is spent in loops with a small number of iterations. However, even modern compilers seem to bet everything on asymptotic performance. Clearly there are performance opportunities for non-asymptotic behaviors and optimization must be adapted to the size of data, and for loop, to the iteration range.. Therefore, we come out with a novel method to version codes. This compositional versioning limits the overhead, reduces costly decision tree height and exploits and executes as much as possible of the generated code. This new technique is based on loop versioning, according to the iteration count distribution. This is a generalization of simple asymptotic evaluations. Given a loop count distribution, either coming from static analysis of the code, provided by the user through pragmas, or observed by profiling, we propose a smart loop versioning scheme. In particular, we split index sets so that each iteration range can be optimized more aggressively. The proposed optimizations are, for short range: peeling and for medium range: turning prefetching off, in addition to any versions proposed by the compiler. The first results on SPEC benchmarks show up to 25% speed up for one benchmark.. From an implementation point of view, our work is still in progress and while we are currently able to handle limited pieces of code and vector loops, we are now building the infrastructure to address the whole SPEC benchmark. One of the main issue to address is the switching overhead. In order to reduce it, we are investigating a way to peel off not only complete iteration but also software pipeline prologue and epilogue. Where the goal is to reschedule and interleave all these instructions allowing to switch directly from one version to a fully loaded pipeline. Specialization is a well known technique to obtain high performance programs. Compiled time specialization often boils down to the generation of codes that are in mutually exclusive execution paths. Splitting iteration space in order to apply different optimizations for each fragment has been proposed by Griebl et al. [4] : their goal is to partition the iteration space according to the dependence pattern for each statement. This increases control but increases the number of affine schedules that can be computed for each code. Tiling is another transformation hal-00575934, version 1 -28 Feb 2013 that changes the iteration domain for better scheduling. However, very few works resort to loop versioning in order to explicitly reduce the overall latency of the loop. This is due to the intractability of general performance models (finding best latency affine schedules is still a difficult problem). That is one reason why asymptotic loop counts are generally considered for optimization. In this paper, we do not consider memory models (or cache model) and assume that the compiler or a tool evaluates accurately the performance of inner loops. This is easier on assembly than on source code.. Software pipelining [10] is a key optimization for VLIW and EPIC architectures. In particular, modulo scheduling, as used by the ICC compiler, exhibits instruction parallelism, even in the presence of data dependencies, that greatly improves performance. Modulo scheduling targets large iteration counts and tries to find an initiation interval (II) as small as possible, defining the throughput of the loop. However, when the iteration count is small, this may increase the loop latency (in particular when the II is essentially constrained by resources). Loop peeling is a well known technique for improving the behavior of the code for small iteration count. As it comes at the expense of code size, compiler heuristics usually prefer to not use it. With our approach, it is possible to decide, according to the awaited iteration count distribution, whether peeling is worth or not. Moreover, our technique would take advantage of profile information since the distribution is then more accurate.. Prefetch works by bringing in data from memory well before it is needed by a memory operation. This hides the cache miss latencies for data accesses and thus improves performance. Typically, when a cache line is brought in from memory, it contains several elements of an array that is accessed in the loop. This means that a new cache line is needed for this array access only once in several iterations. This depends on several factors such as the stride of the array access pattern, the cache line size, etc. In fact, if redundant prefetch instructions are issued every iteration, it may degrade performance. Prefetch instructions require extra issue slots and thereby increase the cycle per iteration ratio. Redundant prefetches can overload the memory subsystem and thereby adversely affect the performance, and prefetch too much in advance can also result in cache pollution and performance degradation [11] . Prefetches are interesting only when the iteration trip count is large enough to make data access at the prefetch distance. This implies that for medium iteration numbers, prefetch instructions can be removed. We consider three benchmarks:. ) and two benchmarks from the CFP2000: GALGEL and MGRID. The DAXPY illustrates the combination of both unrolling and prefetch specialization. DAXPY: Prefetch instructions must be generated for both X and Y arrays. It appears, that using prefetch degrades the initiation interval of the software pipelined loop due to extra pressure on memory slot.. Based on our performance model, there are three versions of the initial code:. -First zone: peeling, each block of 8 iterations costs 30 + N mod 9. Peeling degree is set to 8 since is corresponds to the minimal latency in the DDG (4 cycles) which is just enough to schedule 8 floating point instructions. -Second zone: disable prefetch, the formula is in 1 × N + α 1 -Third zone: enable prefetch, formula: 2 × N + α From the prefetch version, we know that the prefetch distance is set to 800B. Therefore, considering that every iteration is consuming 8 Bytes, it means that the loop needs to iterate at least 100 times before accessing the first prefetched data. So for this 100 first elements, it can used a loop without prefetch instructions. Performance results are detailed in Figure 3 . th iteration, composed versioning suffers from the overhead of filling up pipeline, while they are already filled-up for both other versions. This is consistent with our policy: overheads should be postponed as far as possible. Therefore even if these overheads still account for the same number of cycles their relative cost is smaller. Notice, that clearly composed versioning follows the same behavior than no prefetch version. In this example we chose to stick with no pretech up to 128 iterations. (b) details the behavior for large number of iterations. Composed versioning sticks with the no prefetch slope outperforming the prefetch version up to a hundred iterations. Beyond, it sticks to the original version, for the best asymptotic performance.. GALGEL, loop b1 20: The loop b1 20 is a pipelined loop, and is one of the many versions generated by the compiler for one source loop. The loop has 8 iterations in the train input data set, 11 in the ref input data set. For this loop, we performed a peeling of one iteration. MGRID, loop b7 81: The loop b7 81 in the assembly code is memory access intensive, since it performs in two cycles two load-pairs (equivalent to four loads) and four stores. The loop uses one prefetch instruction and is pipelined. Peeling the loop does not bring significant performance gain, according to the performance model. Indeed each peeled iteration takes 2 cycles and interleaving peeled iterations does not reduce this latency. Therefore, as soon as the loop trip count exceeds the number of iterations peeled off the loop, the cycle count of the optimized loop should be similar to the cycle count of original loop.. As for prefetching, we split the loop into a sequence of two similar loops, the first without any prefetch instruction. The histogram of loop trip counts, provided by MAQAO [5] and presented in Figure 4 -(b) shows that the loop trip counts are small enough to make prefetch useless.. Indeed, by removing prefetches in this single loop, the performance gain obtained for the whole benchmark is 25%. This illustrates a case where prefetches are counter-performant and trashes the data cache.

O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O