dataesr/scientific-paragraphs-categorization huggingface dataset:
Execution platforms To achieve our experiments, we used three (standard) Ethernet PC clusters at CentraleSupelec: • Skynet cluster including 4-core nodes (Intel Core i7-920 CPU) at 2. 6 GHz and a 1 Gb/s Ethernet network, • Cameron cluster including 6-core nodes (Intel Xeon E5-1650 CPU) at 3. 6 GHz and a 10 Gb/s Ethernet network, • Sarah cluster composed of dual 4-core nodes (Intel Xeon E5-2637 v3 CPU) at 3. 5 GHz (Haswell architecture) with a 10 Gb/s Ethernet network. Also, we used a high performance PC cluster at EDF R&D: 8 A reference tool developed by Dassault Systèmes. It represents both a modeling and a simulating tool based on the Modelica language. 9 EFRO-SALK project, with support of the European Union, the European Regional Development Fund, Flanders Innovation & Entrepreneurship and the Province of Limburg.
Apportionment on multicore PC clusters When developing DACCOSIM, one of our objectives was to integrate algorithms of FMU placement on the computing nodes, to easily reach a reasonable co-simulation time. Our approach is based on experimental heuristic methods and on business expert methods. They belong to static off-line methods  [28]  that define a fixed placement of tasks at the time of program compilation. However, the gray-box facet of the FMUs forces us to design methods not requiring detailed information. Finally, we designed and identified the following methods, which are applicable to medium and large use-cases and reach reasonable co-simulation times on our benchmarks: • Experimental heuristic-based methods: these heuristics require some preliminary investigations and are designed for small and medium use-cases.
First scaling experiment In this section, we used the EDF Enerbat-cl3 benchmark and two 17nodes PC clusters (see Section 4) to conduct our first scaling experiment with DACCOSIM 2017. We start measuring some speedup, then we investigate a size up approach, and finally we evaluate DACCOSIM 2017 on a complete experiment of scaling. As explained in Section 3. 2, no cosimulation control algorithm using variable time steps was available in DACCOSIM 2017. Thus, all our experiments used constant time steps, but were run on lower-layer mechanisms compatible with variable time steps. 10 A parallel python tool that deploys and runs distributed DACCOSIM co-simulations on a distributed platform, and gathers results. 11 Non Uniform Memory Architecture.
Conclusion and perspectives Smart Grids occupy a strategic place in the future multi-energy system, combining heat, gas and electricity. The IT technologies are adding to the outdated electrical networks an ability to improve their performance in a new context based on increasing decentralized production and uncertainties on the production-consumption balance. But Smart Grid development requires large scale co-simulations, aggregating heterogeneous components. In this paper, we introduced DACCOSIM, our distributed co-simulation platform, based on the FMI standard and designed to run and scale on multi-core PC clusters. Its software architecture implements a hierarchical Master Algorithm controlling a graph of FMUs. Its execution model and implementation support constant or variable time steps, rollbacks of the FMU graph, direct FMU-to-FMU communications and two orchestration modes.
Limitations and future works A co-simulation control algorithm supporting variable time stepping is being added in the next versions of DACCOSIM. Within the French project ModeliScale,  12  we also intend to manage this variable stepping with methods inspired by the QSS (Quantized State Systems) methods  [32]. In parallel, the logging of results is being improved with interpolation techniques especially the Hermite interpolation. The testbed used to challenge DACCOSIM 2017 is not large enough to be representative of complex systems. So, we plan to handle wider energy systems, and drive future evolutions of DACCOSIM whose code is being industrialized still under LGPL v3 license on a collaborative BitBucket platform. 13 ACCOSIM 2017 is being redesigned into DACCOSIM-NG (New Generation) to offer a more friendly GUI, to reach better performances and to include new functionalities  [33].
Redesigning DACCOSIM and running wide systems are also a great opportunity to feedback on the use of the FMI standard and influence the development of the next major release of this standard expected in 2021. Two improvements that we advocate for FMI 3. 0 are the efficient treatment of hybrid co-simulation (continuous and discrete) and the consideration of flow causal variables for FMU-to-FMU data exchanges. These improvements will also facilitate the implementation of variable stepping in the Master Algorithm of DACCOSIM.
During 30 years, the core of CORSIKA did not change and adding new features or optimizations has become a complex task. In this context, the CORSIKA 8 project  [5]  aims to entirely rewrite CORSIKA in modern C++ (C++ 17) to obtain a modular, flexible and efficient code. It is always a challenge to re-write an old scientific code in a modern framework, while keeping compatible physics results and high performance. For the use case of CTA, the Cherenkov module was the most CPU consuming part and we expect the same behavior in CORSIKA 8. Indeed for each shower, billions of Cherenkov photons are produced and their positions, directions and arrival times must be calculated taking into account the properties of the traversed atmosphere. In the framework of CORSIKA 8, we have thus started the development of the Cherenkov module and obtained the first physics and performance comparisons with CORSIKA 7 (our reference).
This work is presented in Section 3. Table  1  summarizes the different CORSIKA versions (that we have) developed and compared both for the optimization done in CORSIKA 7 and in the Cherenkov module development in CORSIKA 8. Finally, in Section 4 we present conclusions and prospects to continue to improve the performance and the quality of the simulations. All the simulations in this paper have been produced with input parameters typically used in CTA productions. In particular, we have been using gamma incident particles in an energy range of 3 GeV -330 TeV and for the conditions of the CTA South site at Paranal (geomagnetic field, altitude). In order to obtain reproducible results, we have also fixed the pseudo-random number generator seeds. Finally, CORSIKA 7 optimizations have been tested with runs of 5000 showers, whereas CORSIKA 8 Cherenkov module has been validated by injecting particle tracks from 10 showers generated with CORSIKA 7.
In particular, the values of air density, thickness and refraction index are tabulated at different altitudes. Interpolation is then used to obtain the properties of the atmosphere at intermediate altitudes. Telescope arrays are represented by a grid of telescope positions, each telescope being represented by a fiducial sphere. Once propagated to the ground, only the photon bunches intersecting a telescope are saved in the final output. In CORSIKA, the Cherenkov photon propagation, the atmospheric model and the geometry of the telescope arrays are handled in a dedicated package (IACT/atmo). By profiling CORSIKA 7 with Linux Perf tool, we have identified the most CPU consuming functions. These can be grouped into 3 categories each representing about 1/3 of the overall CPU consumed: elementary mathematical functions, Cherenkov simulation functions and a set of other smaller functions.
Vectorization The first optimization work done in CORSIKA 7 consisted in enhancing SIMD (Single Instruction Multiple Data) auto-vectorization (CORSIKA 7. 6900-OPT-V1 in Table  1 ), as de-tailed in Ref. [1]. Indeed, all modern processors perform operations in parallel thanks to vector SIMD registers. These specialized registers allow us to use vector instructions performing one type of operation for multiple data in one cycle. Many technologies exist for different architectures. In our case, we have considered the x86 instruction set 1 , and more specifically AVX2 2 (AVX-512 did not provide here significant speed-up and is not yet widespread in the grid computing centers). In order to benefit from SIMD vectorization, there are two main options. The first is automatic vectorization by the compiler (auto-vectorization) while the second is to use manually intrinsic functions which depend on the target architecture.
Memory usage optimization Since further vectorization required profound changes in the code, either the logic of algorithms or the data structures, we have examined other paths for optimization and in particular regarding memory access. Using the Perf Linux tool, we have collected data from several performance counters. By analyzing counters statistics, we identify a single function that generates 71% of the cache misses as shown in Figure  4 (a). This memset_sse2 function is used to initialize memory blocks to zero. Fortunately in the present case, we found that mem-set_sse2 was in fact called by a calloc function call that allocates the memory for structures of photon bunches. After having verified that such initialization was not necessary in this case, a simple malloc function drastically reduced the number of cache misses as shown in Figure  4 (b).
CORSIKA 8 -Cherenkov Module Development CORSIKA 8 is a collaborative project for the development of a modern C++ version of COR-SIKA 1 using different modern tools for version control, testing and continuous integration. In the CORSIKA 8 framework it is already possible to simulate hadronic and electromagnetic showers. The support for electromagnetic cascades has been recently introduced via an interface with the PROPOSAL software. 2 At the moment only some analytical atmospheric models are supported, but in the future more precise models, e. g. , atmospheric tables as in CORSIKA 7, will be included. In the rest of the paper we present our contribution to the development of a Cherenkov module in the CORSIKA 8 framework to handle the generation and the propagation of the Cherenkov photons through the atmosphere.
Cherenkov module -Overview We follow three main steps to develop a Cherenkov module in the CORSIKA 8 framework with compatible physical results and performances with respect to the current CORSIKA 7. The first step consists of writing a version very close to the CORSIKA 7 Cherenkov module, to provide a good basis for comparison. Then, we develop a version in the general style of CORSIKA 8, i. e. using different C++ 17 concepts and removing all pointers. Finally, we explore different possibilities of optimization, testing different vector libraries for elementary functions or applying single precision to certain parts of the code, thanks to a numerical error analysis or using vectorized operations with templates. Indeed, instead of writing a loop with operations that could be not vectorized, we could create an operator which performs automatically some vectorial operations.
The first step is currently almost achieved. The CherenkovC7Test module (cf. Table  1 ) generates and propagates Cherenkov photons to the ground using the same algorithms as in CORSIKA 7 except one missing function that tests photons crossing the telescopes. 1 https://gitlab. ikp. kit. edu/AirShowerPhysics/corsika 2 https://github. com/tudo-astroparticlephysics/PROPOSAL 3 Intel i7-8665U/4. 8Ghz/L3:8MB, RAM:16GB with gcc/g++/gfortran 9. 3 and optimization flags: -O3 -mavx2 6 In order to do an accurate comparison between this new CherenkovC7Test version and CORSIKA 7, we have slightly modified the latter to save particle tracks coordinates which are used as entries by the Cherenkov function. Then, we inject these entries in the CherenkovC7Test module and we compare the results in terms of photon coordinates after the propagation to the ground.
Cherenkov module -Performances In order to accurately estimate the performances related to specific parts of the code, we have used the PAPI API  [6]  to collect hardware performance counters in some selected areas for CORSIKA 7 and CORSIKA 8. Indeed contrary to Linux Perf, PAPI allows us to instrument the code to isolate the areas where it sums the collected events for one or multiple counters. So thanks to PAPI, we can easily isolate the different parts of the code that we want to compare between CORSIKA 7 and 8, where the selected counters come from the Linux Perf library. We compare for some selected hardware counters the Cherenkov module in CORSIKA 7 and CORSIKA 8 (CherenkovC7Test) with and without the vector-libm. We recall that CORSIKA 7 always uses here the vector-libm. The results reported in Table  4  exhibit that the Cherenkov module in CORSIKA 8 is always slower than in CORSIKA 7.
Moreover the "constraint" clause (mainly used for function parameters) is not used in C++ whereas it is in C. For the scalar instructions, the code in CORSIKA 8 is slightly different : we add some operations to convert double to "custom types", for some comparisons, isolated calculations (coefficients,etc) and mathematical functions (absolute value function, pow function,etc). Two multiplication are necessary for each function (custom type to double and double to custom type). These technical differences may explain the observed reduction of the vectorized ratio. This scalar part is the previously mentionned bottleneck for the vector-libm efficiency. We have then measured the events for different counters giving indications to the memory access pattern, as reported in Table  6. 1 First, we observe that in CORSIKA 8, the ratio of cache misses to cache references increases from 6% to about 33%.
Attributes enable to call functions with sending argument but contrary to C code, we have inevitably more data in memory. Finally, we have divided the Cherenkov module in 3 areas (as shown in Table  7 ) and compared different counters area by area. In general, we have a huge increase for cache misses and LLC misses for CORSIKA 8 but we notice some particularities for every area. Like in CORSIKA 7, the photon generation step does not produce vectorized instructions and we observe a moderate increase of instructions and cycles. Before photon's propagation (some calculations to prepare it), we found a vector ratio slightly better for CORSIKA 8 version. In fact there are more vectorial operations and a general instruction decrease in this part thanks to a loop fusion between scalar and vectorized loops versions of CORSIKA 7.
Several optimization options were evoked like vectorial calculations in single precision, new vectorial operators and new C++ style in general. In order to validate the physical results obtained with the new Cherenkov module in COR-SIKA 8 compared to CORSIKA 7, we have set up a test environment to run and compare the two codes under very similar conditions. First of all, it is important to use the same set of entries (i. e. , particle track coordinates) for the two versions. Secondly, in this first phase, we have implemented essentially the same algorithms as those used in CORSIKA 7. The main difference between the two codes concerns the random number generator, that is used to generate the φ angular coordinate of the emitted Cherenkov photons for a given opening angle θ. CORSIKA 7 uses a modified version of the CERN random number generator in double precision (RMM48), while CORSIKA 8 currently uses the uniform real distribution in double precision of the "random" library.
Module Cherenkov -Physics results As shown in Figure  5 (a), the 2D map of the photon counts on the ground is very similar between CORSIKA 7 and CORSIKA 8 while the photon distribution by atmospheric depth is exactly the same in Figure  5(b). A statistical comparison of the distributions of the physical quantities confirms a very good agreement between the two versions, as indicated by the Pearson and Kolmogorov coefficients in Table  8. We have also verified that the slight differences in position and direction distributions are due to the different random generator used in the two versions. With this validated version in hands, we are now ready to start the second and third phases of our plan, i. e. , writing the module in a more C++ friendly style in line with the CORSIKA 8 framework (e.
Our contribution focuses on the Cherenkov module, which is of particular interest for the CTA community and which also appears to be the bottleneck regarding run time in CTA simulations. The work presented in this paper is the first phase toward the development of an optimized Cherenkov module in CORSIKA 8 framework. Our goal was to first develop a version very similar to CORSIKA 7, from the algorithmic point of view, to have a good basis for comparison. We have thus performed a detailed profiling of the new and of the old code and compared several hardware counters. The overall performance of the new version is already very close to CORSIKA 7, even before any specific optimization work. Nevertheless, an excess of cache misses in the new version indicates that there is some room for improvement regarding memory access.
Cell-cell communication analysis in PFC data We performed cell-cell communication analysis using the CellChat  32  software, with PFC and ACC samples separately. For every pair of cell types, ligand-receptor (L-R; and other) interactions were identified and measured. Intercellular communication is based on the projected ligand and receptor profiles where the expression level of L and R is approximated by their geometrical mean across individual cells of a type. These interactions represent the interaction strengths (also referred as "probability" in CellChat) between all ligand-receptors expressed in two given cell types. Note that CellChat considers important signaling factors such as heteromeric complexes involved in each interaction in addition to a L-R pair, therefore, the absence of any of those components leads to a null interaction.
In the latter, we first obtained various gene sets. ASD candidate genes were downloaded from two sources: 1) SFARI database (https://www. sfari. org) (ASD_SFARI) comprising 1,003 genes scored as syndromic, high confidence, strong candidate and suggestive evidence levels, and 2) AutismKB 36 (ASD_AutismKB) with 228 genes. Two schizophrenia (SCZ) risk gene sets were obtained from SZDB2. 0 (http://www. szdb. org/index. html) database; SCZ_GWAS gene set was built with 571 genes identified in GWAS studies and SCZ_CNV gene set with 408 genes affected by Copy Number Variation (CNV). The 1190 genes related to bipolar disorder were obtained from a previous study  19  , while gene sets for intellectual Disability (ID_CNV; n=908) and Attention Deficit Hyperactivity Disorder (ADHD; n=359) were obtained from (http://www.
ccgenomics. cn/IDGenetics/index. php) and (http://adhd. psych. ac. cn/index. do) databases, respectively. These 7 gene lists were then used for over representation analysis of genes in dysregulated pathways using the Fisher's test in the GeneOverlap package 37 in R. (which was not certified by peer review) is the author/funder. All rights reserved. No reuse allowed without permission.
We merged cells from all 13 ASD PFC samples into one group and cells from 10 control PFCs into the other, and then studied the between-group difference (referred as "Global approach"; Figure  1a ). We used the software CellChat, which analyzes the expression of ligands, receptors and other proteins involved in cell-cell interactions to (which was not certified by peer review) is the author/funder. All rights reserved. No reuse allowed without permission. The copyright holder for this preprint this version posted October 15, 2021. ; https://doi. org/10. 1101/2021. 10. 15. 464577 doi: bioRxiv preprint 8 determine the interaction strength in an interacting protein complex for a pair of cell types  32. For simplicity, we hereafter refer all pairwise interactions as ligand-receptor (L-R) interactions even though non-canonical ligands or receptors are also considered.
Major intercellular signaling patterns in PFC Next, we grouped L-R interactions into signaling pathways using CellChat and compared them between ASD and controls. This is a key advantage of CellChat over other software, and it is important because many L-R interactions would invoke the same downstream signaling, such as FGF1/2/3-FGFR1/2/3 or NRNX1/2/3-NLGN signaling. Afterwards, we used CellChat to identify the major latent patterns in outgoing and incoming signaling in the control and ASD PFC, by clustering cell types sending or receiving similar signaling. For outgoing signaling (Figure  2a, b ), CellChat uncovered 5 and 4 patterns for control and ASD samples, respectively. In control (Figure  2a ), pattern 1 involved interneurons, Neu-mat and Neu-NRGN-I cells, in which the main pathways were IGF, TAC, HGF and OSTN.
Here, CD39, CD45 and VISTA were the main senders. Like controls, excitatory neurons grouped together in pattern 2 with outgoing signals from NT, ANGPT and CSF pathways. Pattern 3 clustered only non-neuronal cell types, endothelial and oligodendrocytes cells, with CD22, MAG, CLDN and ESAM as the main signaling contributors. From the receiving end, 7 patterns were found in control PFC, while 6 in ASD (Figure  2c, d ). In control (Figure  2c ), pattern 1 involved excitatory layer neurons and Neu-NRGN-I neurons and others, while SEMA5, VIP and WNT were the main signaling receivers. Pattern 2 grouped interneurons and Neu-mat cells with genes related to OSTN and PACAP pathways. FN1 and TENASCIN pathways were the main signal receivers in pattern 3, in which astrocytes and OPC participated. Endothelia, oligodendrocytes and microglia clustered by themselves in patterns 4, Endothelial, both oligodendrocyte cell types and microglia were enclosed in pattern 4, 5 and 6, respectively, and showed same patterns as in control dataset.
The result indicates that 8 signaling pathways, non-canonical WNT (ncWNT), GRN, EGF, THBS, PTH, OCLN, SPP1 and CD226, were specifically identified in the control dataset but no pathways unique to ASD were found. Additionally, 48 of the signaling pathways were significantly down-regulated and 6 up-regulated in ASD when the relative information flow was analyzed statistically (Figure  3a ; p < 0. 05, Wilcoxon test). However, we should mention that the differences for most signaling are relatively small. Close examination of the changes in relative contributions of individual cell types with respect to both outgoing and incoming signaling in ASD and control datasets illustrates this better (Figure  3b, c ). It also indicates that the two largest reduced signaling pathways (ncWNT and THBS) are due to significant decreases in incoming signaling in multiple cell types.
Sample-by-sample CCC analysis in PFC The above global approach is standard in CellChat and is also the most common design in cell-cell communication analysis by other software (i. e. , only making two sample comparison). One concern is that it did not account for the potential differences among individual ASD or control samples. Furthermore, one can even argue that cells in one brain would never talk to cells in another. Thus, we decided to apply a complementary sample-by-sample approach. In essence, we used CellChat to obtain strengths of L-R interactions or score signaling pathways for each of the 13 ASD and 10 control PFC samples, as above, but then applied Wilcoxon test to determine if the sample-level strengths were significantly different between ASD and control groups. We focused our analysis on pan-cell type signaling pathways.
Functional connection of the disrupted cell-cell signaling to ASD risk genes In order to study how the disrupted cell-cell communication signaling are linked to ASD genetic risk, we applied the STRING database to construct a protein-protein interaction network. It identified 1,076 edges connecting 153 of the 165 genes in the disrupted CCC signaling (ranging from 1-30 connections) to 239 ASD risk genes in the SFARI database (Figure  7a ). In addition, the network has an average local clustering coefficient of 0. 38 and interaction enrichment values of 0. 05, indicating overall strong connections among the genes (i. e. , nodes).