dataesr/scientific-paragraphs-categorization huggingface dataset:
We first configure our hypervisor at boot time, before the startup of the Linux virtual machine. We register a hook to the virtual machine page fault event (EPT violations), which is raised when virtual machine memory accesses are denied. We also register a hook to virtual machine interruptions raised when the step-by-step execution mode is active. Then, we unmap (read, write, and execute credentials off ) the DMAR unit 0 configuration page, associated to the external peripherals. Finally, we launch the virtual machine. The goal here is to detect when the Linux IOMMU driver activates the translation setting GCMDR. TE bit to 1, to perform steps (0) and (∞) with the hypervisor. The Linux IOMMU driver accesses the configuration page several times. Each time an access is performed (i) a virtual machine interruption occurs; (ii) the single step execution is activated; (iii) if GCMDR.
Rootkit attack The considered rootkit is a binary code which is injected in kernel memory and modifies the behavior of the setuid kernel system call. According to the POSIX programmer's setuid manual page, the normal behavior for this system call is to modify the real user uid, effective uid, and others accordingly, if the user has the rights or enough privileges to do so. Our rootkit modifies the preceding behavior in a way that each time this functionality is called, the euid (effective uid) of the calling task is systematically set to 0, which gives root user effective privileges to the calling process. We developed a small C code to call setuid function, that we executed by a non-root user, both in the presence and in the absence of our exploitation of the IOMMU configuration. The short video at http://homepages.
laas. fr/ nicomett/SSTIC2016/iommu-pwn-sstic. webm shows the rootkit installation and use. The parameter is copied in %rbx (1). The code affectation of new is located at (2), directly followed by the credential check function call  (3). Then, (4) invokes the credential commit function and returns from the system call. Finally, let us recall that Linux core kernel virtual address space is not randomized. Furthermore, physical addresses can be trivially deduced from virtual one with the following bitwise function: f (a) = a ∧ ¬0xffffffff80000000. Also, we can note that instruction at 0xffffffff81086998 is 4 B aligned, which makes DMA easier because it is also aligned to double words. Therefore, our rootkit payload is written at physical address 0x01086998, The payload simply writes the double word 0 to the (2) affectation addresses.
2, 2. 5]. Linux does not use these memory segments, placing IOMMU structures outside the protected ranges. Devices are consequently able to read and write the IOMMU configuration before its activation. These DMA-protected memory segments are common in modern architectures and should be systematically used to set up such hardware protection components, such as the IOMMU. Despite these protections, the system remains vulnerable to DMA attacks while the firmware is being executed, in the first phase of the boot process. This weakness is due to the fact that the firmware does not filter DMA. It can be exploited by a malicious peripheral to modify the code of either Linux or the firmware itself and so prevent the activation of the IOMMU. To address this problem, it is necessary to check the integrity of software components, e.
Conclusion The IOMMU has been included several years ago in Intel processor architectures to provide better protection against low-level attacks. While this mechanism has proved to be efficient to cope with several I/O attacks, this paper shows that it can be bypassed by exploiting a design weakness in its configuration by both firmwares and the Linux IOMMU driver. The corresponding vulnerability is discussed in this paper, a proof of concept and an experiment illustrating its possible exploitation are also presented. The attack explored makes it possible for malicious peripherals to make read and write accesses in the main memory and to bypass the protection mechanisms embedded in the IOMMU. We are currently studying other operating systems (such as Windows, BSD systems) in order to check whether this vulnerability is only related to Linux kernel or not.
Bi-pattern enumeration We focus now on abstract closed bi-pattern enumeration. Building the bi-concept lattice has therefore to be a post-processing step. The enumeration follows the same process as abstract closed pattern enumeration, i. e. the efficient divide and conquer scheme described in  [4]  as implemented in the program MinerLC 2. The adaptation is straightforward: the closure operator is now f A = int•p •ext where p is the interior operator as defined above. To perform enumeration of abstract closed bi-patterns we specialize each abstract closed bi-pattern (q 1 , q 2 ) by adding either an element of I 1 to q 1 or an element of I 2 to q 2. The algorithm bi-patterns is described hereunder with the following notations: Let q = (q1, q2) be a bi-pattern, i) add(i, q) returns either (q 1 ∪ i, q 2 ) when i ∈ I 1 or (q 1 , q 2 ∪ i) when i ∈ I 2 , ii) minus(I , q) returns the set of items which belong neither to the left part nor to the right part of the bi-pattern q = (q 1 , q 2 ), i.
A two-mode network of epistemological data We are currently investigating a two-mode network concerning data related to a MNHN-IRD program (called MUSORSTOM then Tropical Deep-Sea Benthos) of expeditions to explore the deep-sea in the Indo-West Pacific region, since 1976  [1]. In this network 596 edges relate 74 campaigns to 268 participants to these campaigns. Campaigns are described following their date and location, the type of fishing gear (dredge, trawl), the objectives of the campaign as well as species described during the campaign. Regarding participants the attributes concern the location of the institution they belong to, their scientific domain as well as bibliometrics. We have in particular searched abstract bi-concepts associated to a 3-4 HA cores (subnetworks whith participants to at least 3 campaigns, and campaigns with at least 4 participants).
A lawyers advice network This dataset concerns a network study of corporate law partnership that was carried out from 1988 to 1991 in New England  [13]. It concerns 71 attorneys (partners and associates). In the Advice network 3  , each attorney is described using various attributes. and 892 directed edges xy relate attorney x who goes to attorney y for basic professional advice. This network was investigated in  [20]  applying the abstract closed pattern methodology using the HAcore definition. We use here the attributed network as found in the minerLC web page (see above). We apply our bi-pattern methodology using the 9-9 BHA-core which corresponds to a 9-9 HA-core as far as we have equal input vertex subsets W 1 = W 2 = W (see Prop. 4. 7). As an example, we consider the following closed bi-pattern q = (q 1 , q 2 ) where q 1 ="25 <Age≤ 50, Seniority ≤ 25" and q 2 ="30 <Age≤ 65, 5 <Seniority".
In this publication, we focus on StarPU  [1]. Runtime schedulers allow to handle heterogeneous architectures in a transparent way. For this, the algorithm must be recast in a graph of tasks. Computing kernels must then be written in different languages, in order to be executed on the different possible devices. Then, the runtime scheduler will be in charge of dynamically balancing the tasks on the different available computing resources (cores of the host, accelerators, etc. ). Finite differences methods have already been successfully ported on hybrid architectures  [7]. However, we aim at developping numerics on unstructured meshes, for example of the discontinuous Galerkin type, and our methods have a very different memory access pattern, which is one of the bottlenecks of the task-driven programming.
StarPU tasks In StarPU, a task is made of the following: a codelet, associated kernels and data handles. • The codelet is the task descriptor. It contains numerous information about the task, including the number of data handles, the list of available kernels implemented to execute this task (for CPU, GPU or possibly something else. ) and the memory access mode for each data handle: "Read" (R), "Write" (W) or "Read and Write" (RW). • The kernels are the functions that will be executed on a dedicated architecture: CPU, GPU, etc. A task may have the choice between different kernels implementation and it is the role of the StarPU scheduler to distribute the tasks on the available heterogeneous architectures following a certain criterion (in general minimizing the global execution time). • The data handles are the memory managers.
Construction of the tasks dependency graph The domain of size Nx × Ny is partitioned into NPartX × NPartY balanced parts of size NxLoc × NyLoc, see Figure  1. One task will deal with one partition at a time. In order to treat the interaction between the domains in an asynchronous manner, each domain is supplemented with copies of its border data, see Figure  2. • Each memory allocation is associated with a data handle: one for each subdomain, four for its borders copy, called overlaps in the following, • The codelet of each task points toward a certain number of these data handles, tagged as "R" or "W" or "RW", for Read and/or Write, following the access mode exepected by the associated kernel, • Finally, the code is parsed and the tasks are submitted to StarPU. When a task has to write on a certain data handle memory, a dependency edge is drawn between this task and the latest tasks having read access on this data handle.
Schedulers The purpose of the scheduler is to launch the tasks when they become ready to be executed. In StarPU, many different scheduling policies are available. In this paper, we consider only the two following: • the eager scheduler: it is the scheduler by default. It uses a central task queue. As soon as a worker has finished a task, the next task in the queue is submitted to this worker. • the dmda scheduler: this scheduler takes into account the performance models and the data transfer time for the tasks (see Section 5. 3. 2). It schedules the tasks so as to minimize their completion time by carefully choosing the optimal executing architecture.
Overlap additional memory buffers In order to minimize the communications and the dependencies between subdomains, each subdomain comes with four additional one-dimensional buffers corresponding to the possible four overlap-data needed at the subdomain boundaries (East, North, West and South). Two vectors of size NxLoc × sizeof(Cell) (ovlpS and ovlpN) and two vectors of size NyLoc × sizeof(Cell) (ovlpE and ovlpW) are always allocated, whether the overlap needs to be used or not. The reason for that is that the number of data handlers passed to a StarPU kernel needs to be constant. Therefore, when copying the overlap-data for example, all the overlap data handlers are passed anyway but nothing is done if they are not needed, like in the case of a periodic subdomain in one direction. Of course, here lies a small communication optimization, when sending a task on another device, since some useless data is transfered.
(8) • borderResiduals ovlpE(R),ovlpN(R),ovlpW(R),ovlpS(R),uLoc(R),RHS(RW) : computes the remaining numerical fluxes, meaning those between the overlap vector states and the border cells of the subdomain. Therefore, the overlap data vectors passed in argument here are those belonging to the subdomain. • update uLoc(RW),RHS(R) : update the numerical solution subdomain-wise, thanks to the update relation  (7). The corresponding task diagram for one time step and two sub-domains is given in Figure  5. This graph is an output we can get from StarPU to verify the correct sequence of the tasks.
Since the dependency graph is built on the memory dependancy between the tasks, it is very dangerous to use data handlers sharing the same memory slots. Fortunately, both descriptors can be declared in StarPU and a specific procedure allows to switch from one to another, so that they are never used concurrently. First, the global buffer is allocated and encapsulated in a global StarPU data handler. Next, it is also described as a vector of NPartX × NPartY data handlers, thanks to the command: starpu_matrix_data_register(starpu_data_handle *data_handle,int DEVICE,void *data_ptr, int LD,int NxLoc, int NyLoc, size_t sizeof(Cell)); Here, the integer LD allows to encapsulate the grid block per block, since the global vector is accessed through the formula: for(int j=0;j<NyLoc;j++) {for(int i=0;i<NxLoc;i++) global_data[i+j*LD];} Then, if data_ptr points to the bottom-left corner of the subdomain, the corresponding block is encapsulated in the subdomain data handler data_handle.
Performance model To reach good scheduling performances on heterogeneous architectures (with CPU and GPU for example), StarPU needs to be able to estimate in advance the duration of a task. This is done by associating each codelet with a performance model. This performance model provides for each codelet and for a certain range of data sizes, an expected average and standard deviation of the task execution times. We use this tool to compare the execution time of different tasks on a CPU Haswell Intel Xeon E5-2680 and on a GPU Nvidia K40-M. We consider the numerical test of Section 5. 1. 1. The computational domain is divided into 8192 × 8192 cells. In Figures  11 12 , we plot the average execution times on CPU and GPU of the tasks associated to a specified codelet as a function of the tasks data size.
Acknowledgment The Hodins team would like to thank the following structures for their support during the 2016 CEMRACS session: • Groupe Calcul  and  Fondation Hadamard  for its financial support, • IFPeN  for authorizing  M. Essadki  to be part of the adventure, • Aix-Marseille  and Plafrim (Bordeaux) computational platforms on which most of the results have been performed, •  ANR Subsuperjet.
Metabolites and traits Seven traits related to growth performance and body composition were recorded for the 48 birds: body weight (g), average daily gain (g), average daily feed intake (g/day/bird), Pectoralis major muscle weight (g), abdominal fat weight (g), and liver weight (g). We further measured lipid content in liver, adipose tissue and Pectoralis major muscledata are expressed in % (g / 100 g tissue) according to  [9]. VLDL, LDL and HDL lipoproteins were determined in plasma according to  [10]. Glucose, glycogen and lactate levels were measured in liver following the procedure described in Dalrymple and Hamm  [11]. Total cholesterol (mg/ L), phospholipids (mg/mL), triglycerides (mg/L) and FA composition (C14:0, C16:0, C16:1, C18:0, C18:1, C18:2, C18:3, C20:0, C20:1, C20:4, C20:5, C22:5, C22:6, % of total lipids) were assessed in liver according to methods described in Chartrin et al.
Gene expression microarray: Data acquisition The Agilent custom 8 × 60 K chicken gene expression microarray (GPL19630 for GEO database, and ID042004 for Agilent database) used in this study contained the 43,553 probes from the Agilent commercial 44 K collection (ID 026441, Agilent Technologies France, Massy, France) supplemented with 756 probes genes annotated with GO terms related to lipid metabolism, 5821 additional probes known to be expressed in chicken muscle, adipose tissue and liver according to previous experiments  [12]  and 955 additional probes corresponding to genes not represented in the standard Agilent collection. All these probes corresponded to 16,736 genes referenced in the chicken Ensembl V70 annotation (http:// www. ensembl. org/index. html): 50% of the genes were represented by at least 4 probes, whereas 4464 genes were represented by only 1 probe.
The human orthologs have been systematically identified according to the "one-to-one" criteria defined by the Ensembl consortium: 69% out of the 16,736 chicken genes have a oneto-one ortholog, allowing us to retrieve for these genes a human HGNC gene symbol from which we could extract more Gene Ontology (GO) annotations. Total RNA (150 ng per sample) was labelled with Cy3 dye using the Low Input Quick Amp Labeling kit (Agilent Technologies) following the manufacturer's instructions. Cy3-labeled cRNA samples were purified, fragmented, and hybridized onto Agilent custom microarray at 65 °C for 17 h using Agilent's Gene Expression Hybridization Kit. After washing 2 × 1 min at room temperature and then at 37 °C, microarrays were scanned using the Agilent DNA Microarray Scanner G2505C, and images were processed with Agilent Feature Extraction Software (Version 10.
Gene expression microarray: data analysis All analyses were performed using the R software version 3. 1. 0. Expression dataset were filtered according to different criteria provided by Agilent: two criteria related to spot quality (gIsManualFlag = 0 & gIsFeatNonUnifOL = 0) and one criterion related to spot fluorescence (gIsWellA-boveBG = 1). For the 44 to 48 microarrays available per tissue, the mean percentage of spots discarded according to these standards was lower than 0. 5% per microarray, suggesting that technical procedures, from slide production to labelling and hybridization, were successful. A gene was then considered as expressed in one given tissue if at least 80% of its related spots in at least one condition satisfied the three criteria defined above. Intensities of remaining spots were finally log2 transformed.
An in-depth quality-check was conducted on raw data to identify potential outlier by using principal component analysis (PCA) (Additional file 2) and analysis of background and signal intensity variation. This step allowed us to point out some outlier arrays which have been further discarded: 2, 1, 3 and 2 outlier arrays were identified out for liver, adipose, muscle and PBMC respectively. We finally analyzed 178 microarrays: 46, 45, 45 and 42 for liver, adipose, muscle and PBMC respectively. Data were normalized by median centering by array and analyzed by using a two-way analysis of variance (with the R function: Anova (lm())) with line, diet and interaction between line and diet as main effects. An analysis using Limma package  [13]  provided similar results as Anova. The row p-values for each factor (line, diet, line x diet) were adjusted following the Benjamini and Hochberg (BH) multiple testing correction method  [14]  to control the False Discovery Rate.
BioMark™ real-time PCR analysis Total RNA isolated from the 48 chickens was reversetranscribed using High-Capacity cDNA Reverse Transcription kit (Applied Biosystems, Foster City, CA) following manufacturer's instructions. cDNAs was diluted 1:20 and subjected to a Specific Target Amplification step using Pre-Amp Master Mix kit (Fluidigm Corporation) with a mixture of all primer pairs and 14 cycles of pre-amplification. The BioMark™ 96. 96 Dynamic Array (Fluidigm Corporation) for real-time qPCR was used to simultaneously measure the expression of selected genes using Real-Time PCR Analysis User Guide PN 68000088 K1. Primers used for qPCR reactions are listed in Additional file 3. Data were analyzed using HTqPCR R package  [15]  and normalized considering GAPDH, RPS8 and TOP2B as reference genes, as suggested after GeNOrm analysis  [16].
Functional pathway analysis using GO database A hypergeometric test was used to select overrepresented GO terms for the DEG lists. As a background, we considered all the genes expressed in the analyzed tissue. Our home-made script provided the GO Identifiers, the GO terms, the p-value adjusted following Benjamini-Hochberg procedure, the HGNC of genes related to the enriched GO term and their fold-change in expression between diets. The GO terms were considered as over-represented if the corrected p-value was < 0. 1. Redundant GO terms were finally removed using Revigo  [18]  and they were manually grouped into representative ancestor terms. An analysis using the webtool DAVID (http://david. abcc. ncifcrf. gov/ [19] ) was also carried out and provided similar results.
Multiple factor analysis (MFA) MFA data integration  [21]  was used to provide a simultaneous view of transcriptomic and metabolomic changes occurring after a diet shift in order to highlight communalities across the two heterogeneous datasets. MFA provides an individual relationship structure by simultaneously evaluating the variation in metabolites and differentially expressed genes (DEGs). When multiple probes matched to one gene, we synthesized the expression data at the gene level by selecting the most varying probe per gene. The MFA method was applied using FactoMiner R package. Briefly, the MFA consists in the following three steps: 1) two principal component analyses (PCA) were performed with the two datasets (here the expression table of the DEG list and the table of metabolite measurements), 2) the components of each PCA were weighed by the first eigenvalue to avoid biasing the MFA towards gene expression (several hundred variables vs.
1 ). For both lines, diets had no effects on growth performance and body composition, with the noticeable exception of the liver, which was lighter in birds fed an HF diet vs. an LF diet. Variation in liver weight was significantly correlated (0. 53) with the expression of FASN encoding one of the key lipogenic enzymes (Fig. 1c ). No interaction between diet and lines was observed for these phenotypes using the present dataset.
The first dimension of the MFA divided the birds according to diet and explained a high proportion of total variation in traits of interest between the two diets (Fig. 4b ). We subsequently determined the variables contributing the most to this dimension. We observed that the first dimension of each PCA performed on each dataset (i. e. , transcriptome and metabolites) strongly contributed to the first dimension of MFA (Fig. 4c ). We then extracted variables contributing the most to the first MFA dimension (|r| > 0. 75, p-value< 0. 001). Among the 25 metabolites, 7 were selected corresponding to PUFAs in the n-6 and n-3 families (C18:2, C20:4, C22:5 and C22:6) and SFAs and MUFAs (C16:0, C16:1 and C18:1); PUFAs were negative contributors to the first MFA dimension, contrary to MUFAs and SFAs, which contributed collinearly with LF diet (Fig.
6c , Additional file 5). To explore these loci throughout life evolution, we performed a similar analysis on mouse gene expression data from various experimental designs (http://https://www. ncbi. nlm. nih. gov/gds). Expression levels of TADA2A, ACACA and DUSP14 were not correlated in the liver of NMR1 mice fed different diets for 2 weeks (GDS3232 dataset, n = 22 from Somel et al. [31] ) (Fig. 6d left ). However, for the same dataset, the correlation in expression of these genes was significant in the brain (Fig. 6d right ). The absence of a correlation between these genes in mice liver was further confirmed in another dataset related to C57BL/6 J mice fed a high-fat diet or a normal diet for up to 24 weeks (GDS6248 dataset, n = 51,  [32] ). Finally, Fig. 6e  depicts the genes highly correlated with TADA2A (r > = 0.
TADA2A and other co-localized genes would be potential new actor of lipogenesis On chromosome 19, we described a highly conserved cluster of four co-expressed neighboring genes: ACACA, TADA2A, C19H17orf78 and DUSP14. In several species (sheep, rats, mice, cattle and humans), ACACA and TADA2 genes are divergently oriented onto the genome and share a GC-rich bidirectional promoter, which explains their simultaneous expression  [75, 76]. Notably, in chickens, four transcripts are described for ACACA in the Ensembl database (Gal-gal 5. 0), and a single promoter has been characterized thus far  [50, 77] , while 23 transcripts and many alternative tissue-specific promoters are described in human genome annotation  [78]. In this study, we showed that the expression of these 4 genes located on this genomic locus in the liver is highly correlated in different chicken strains, while such a correlation was not found in mouse liver but was observed in the brain.