# vrCAPTCHA: Exploring CAPTCHA Designs in Virtual Reality

Xiang Li1,2 1Exertion Games Lab, Department of Human-Centred Computing, Monash
UniversityMelbourneAustralia
2Xi’an Jiaotong-Liverpool UniversitySuzhouChina
<EMAIL_ADDRESS>,  Yuzheng Chen1,2 1Exertion Games Lab,
Department of Human-Centred Computing, Monash UniversityMelbourneAustralia
2Xi’an Jiaotong-Liverpool UniversitySuzhouChina
<EMAIL_ADDRESS>,  Rakesh Patibanda1 1Exertion Games Lab,
Department of Human-Centred Computing, Monash UniversityMelbourneAustralia
<EMAIL_ADDRESS>and  Florian ’Floyd’ Mueller1 1Exertion Games Lab,
Department of Human-Centred Computing, Monash UniversityMelbourneAustralia
<EMAIL_ADDRESS>
(2021)

###### Abstract.

With the popularity of online access in virtual reality (VR) devices, it will
become important to investigate exclusive and interactive CAPTCHA (Completely
Automated Public Turing test to tell Computers and Humans Apart) designs for
VR devices. In this paper, we first present four traditional two-dimensional
(2D) CAPTCHAs (i.e., text-based, image-rotated, image-puzzled, and image-
selected CAPTCHAs) in VR. Then, based on the three-dimensional (3D)
interaction characteristics of VR devices, we propose two vrCAPTCHA design
prototypes (i.e., task-driven and bodily motion-based CAPTCHAs). We conducted
a user study with six participants for exploring the feasibility of our two
vrCAPTCHAs and traditional CAPTCHAs in VR. We believe that our two vrCAPTCHAs
can be an inspiration for the further design of CAPTCHAs in VR.

vrCAPTCHA, virtual reality, CAPTCHA

††copyright: rightsretained††journalyear: 2021††copyright:
rightsretained††conference: CHI Conference on Human Factors in Computing
Systems Extended Abstracts; May 8–13, 2021; Yokohama, Japan††booktitle: CHI
Conference on Human Factors in Computing Systems Extended Abstracts (CHI ’21
Extended Abstracts), May 8–13, 2021, Yokohama, Japan††doi:
10.1145/3411763.3451985††isbn: 978-1-4503-8095-9/21/05††ccs: Human-centered
computing Interaction design††ccs: Human-centered computing Visualization
techniques

##  1\. Introduction

CAPTCHAs (Completely Automated Public Turing test to tell Computers and Humans
Apart) are used to protect the security of data (Von Ahn et al., 2008). These
authentication protocols can allow users to access websites while preventing
automatic bots. The most common type of CAPTCHA is a series of graphical
transformations on a two-dimensional (2D) screen, which makes it is nearly
unsolvable by to an automatic bot. Recently, most mobile phones and computers
support various CAPTCHAs to ensure user’s access to websites. However, with
the development of three-dimensional (3D) computing technology such as Virtual
Reality (VR) headsets, user’s pursuit of 2D space has moved to 3D
environments, where we use mid-air (Koutsabasis and Vogiatzidakis, 2019)
gestures (Jospe et al., 2017) to interact in 3D space and explore more
immersive experiences.

In this paper, we present six CAPTCHA designs in VR, including four
traditional CAPTCHAs (i.e., text-based, image-rotated, image-puzzled, and
image-selected CAPTCHAs) and two interactive vrCAPTCHAs (i.e., task-driven and
bodily motion-based CAPTCHAs). The aim is to explore the future CAPTCHA
designs in a VR environment through leveraging the user’s full physical
interactions. We argue that the use of CAPTCHAs with entertaining
interactivity features will allow users to immerse themselves in 3D. Besides,
we believe that research on new virtual reality CAPTCHAs will become more
important due to the proliferation of virtual reality devices, and we propose
that our work can serve as a useful springboard for such future
investigations.

##  2\. Related Work

###  2.1. Traditional CAPTCHAs

Constrained by the structure of 2D displays, traditional CAPTCHAs are almost
always based on a 2D planar design. According to Feng et al. (Feng et al.,
2020), traditional 2D CAPTCHAs can be divided into two types: (1) text-based
and (2) image-based CAPTCHAs.

####  2.1.1. Text-based CAPTCHAs

It is generally believed that the first practical text-based CAPTCHA was
invented by Lillibridge (Lillibridge et al., 2001) in 1997. Then, von Ahn et
al. (Von Ahn et al., 2004) proposed reCAPTCHA, an authentication protocol that
requires users to transcribe scanned text. As this is increasingly easier for
bots, more recent research has tried to make OCR more difficult so that the
bots cannot recognize the texts. For example, Baird et al. (Baird et al.,
2005) proposed ScatterType CAPTCHA, which prevents the computer from splitting
characters from a word. However, the feasibility of text-input CAPTCHA in VR
environments has not been fully discussed. Based on previous research on
inputting text in VR (Zhai et al., 2005), it may be a misconception to still
opt for text-based CAPTCHAs in VR.

####  2.1.2. Image-based CAPTCHAs

Bongo (Golubitsky and Schaeffer, 1985) was one of the first visual pattern
recognition problems for CAPTCHAs. Chew et al. (Chew and Tygar, 2004) were
among the first to work on tagging image-based CAPTCHAs. After that, many
algorithms based on image recognition were proposed and developed. Asirra
(Elson et al., 2007) challenged the user in selecting images with cats among
twelve images of cats and dogs. Matthews et al. (Matthews and Zou, 2010)
presented the scene marker test, where users must recognize relationships
between irregularly shaped objects embedded in a background image. However,
the flat image-based CAPTCHA mainly considers devices with a 2D display plane
as the carrier, and the interactive nature of 3D virtual objects unique to VR
has not been fully investigated.

###  2.2. Mid-air Interaction

Koutsabasis and Vogiatzidakis (Koutsabasis and Vogiatzidakis, 2019) pointed
out that mid-air interactions should have the following three characteristics:
(1) touchless interaction, (2) real-time sensors that can track some of the
user’s physical activity and movement, and (3) body movements, postures, and
gestures need to be recognized and matched to specific user intents, goals and
commands (Xu et al., 2020a). However, traditional CAPTCHAs are difficult to
create such mid-air interactions environment in VR. Since most traditional
CAPTCHAs rely on horizontal and vertical planes of interaction using mouse
clicks and touch screen taps. We conjecture that these types of interaction
are not applicable to the user experience of interacting with CAPTCHAs in VR.
Therefore, we selected four traditional text- and image-based CAPTCHAs and
implemented them in a virtual reality environment as prototypes for a
preliminary study to examine the associated user experience.

##  3\. DESIGN AND DEMONSTRATION

Figure 1. Four traditional CAPTCHAs: (1) Text-based CAPTCHA; (2) Image-rotated
CAPTCHA; (3) Image-puzzled CAPTCHA; and (4) Image-selected CAPTCHA.

Selected four traditional CAPTCHAs.

###  3.1. Four Traditional CAPTCHAs in VR

To guide our design, we firstly considered four traditional CAPTCHAs (i.e.,
text-based, image-rotated, image-puzzled, and image-selected CAPTCHAs).

####  3.1.1. Text-based CAPTCHA

In Figure 1.1, the participants were asked to use the trigger button of the
right controller to click on the blank input field for text input to bring up
the virtual keyboard. Participants then used the VR controller to click the
corresponding letters or numbers and finally clicked the verify button.

####  3.1.2. Image-rotated CAPTCHA

In Figure 1.2, the participants were provided with a tilted image. Then, the
participant was asked to drag the slider on the progress bar by holding the
trigger button on the controller. The movement of this slider would change the
rotation of the image. Once the participant thought that the rotation angle of
the image had reached the correct position, they should release the trigger
button to verify it.

####  3.1.3. Image-puzzled CAPTCHA

In Figure 1.3, the participants were asked to drag the slider by holding the
trigger button on the right controller. Unlike the previous technique, the
movement of the handle changed the horizontal position of the puzzle piece.
Once the participant believed that the puzzle piece had been stitched to the
original image, they should release the trigger button.

####  3.1.4. Image-selected CAPTCHA

In Figure 1.4, the participants were asked to follow the text to select all of
the nine images that meet the requirements. Participants selected images by
moving the slider along the controllers and pressing the trigger button when
they finished their selections. When all images were selected, they were asked
to press the verify button.

###  3.2. Early Exploration of vrCAPTCHAs

####  3.2.1. Task-driven CAPTCHA

Figure 2. Take-driven CAPTCHA.

Take-driven CAPTCHA.

We first designed a CAPTCHA that requires the user to perform a simple action
to authenticate. This CAPTCHA requires the user to lift a virtual object
(e.g., apple, wine bottle or silver knife and fork) by holding the trigger
button and moving it to a specified location (e.g., purple bowl (Fig. 2.1),
trash can (Fig. 2.2), or dinner plate (Fig. 2.3)). This task-driven CAPTCHA is
based on the participant’s feedback. “I think you can design a real-life
scenario to enhance the interaction of CAPTCHA.” (P5).

####  3.2.2. Motion-based CAPTCHA

Figure 3. Motion-based CAPTCHA.

Motion-based CAPTCHA.

We also considered using bodily motions to implement authentication
interaction, and we named it motion-based CAPTCHA. With this CAPTCHA, the
users are asked to follow the movements of a virtual character that appears in
front of them (e.g., body movement like front flat raise (Fig. 3.1), side flat
raise (Fig. 3.2) and up raise (Fig. 3.3)). This motion-based CAPTCHA is
inspired by previous exergame research studies (Li and Chen, 2020; Xu et al.,
2020c, b; Arnold et al., 2018; Patibanda et al., 2017) which demonstrate the
immersion that upper body limb movements can bring in VR. It is engaging for
users to follow the virtual character and move their bodies.

##  4\. Pre-Study and Feedback

We recruited six participants to finish the pre-user study for these four
traditional CAPTCHAs and our two new vrCAPTCHAs. According to our subjective
ranking feedback from participants, all participants ranked the task-driven
CAPTCHA as their favourite. “I think it is the most interesting CAPTCHA!”
(P1). “It is very interesting; I enjoy using this CAPTCHA in VR.” (P6). Four
participants thought that the motion-based CAPTCHA is the second best. “I like
this (motion-based) CAPTCHA, it makes me feel that I am playing a VR game.”
(P2, P4). All participants thought that the two vrCAPTCHAs could greatly
improve their motivation to experience CAPTCHA in VR. Four participants ranked
the text-based CAPTCHA last in their preferences. For example, P1 complained
that the “text-based CAPTCHA was too time consuming and cumbersome in VR.”

##  5\. Limitations and Discussion

We acknowledge the limitations of our two vrCAPTCHAs. For task-driven
CAPTCHAs, we only considered simple movements of objects. In fact, for virtual
3D spaces, we can design richer interactive environments, such as simulating
daily activities like playing basketball or pouring tea. For motion-based
CAPTCHAs, we considered only the top half of the user’s body. This can be done
by introducing other sensors to enable full body interaction and thus provide
fuller immersion, for example, using a Kinect camera.

We also acknowledge that the security of our vrCAPTCHAs is insufficiently
validated. Given that, we here provide a discussion about interactive
vrCAPTCHAs. Unlike the traditional CAPTCHAs, previous CAPTCHAs are verified by
computational processing of images or text that cannot be recognized by
computers. Our CAPTCHA requires the user to follow the CAPTCHA to perform the
relevant physical actions to complete the submission of the CAPTCHA. Besides,
according to Mueller et al. (Mueller and Lockerd, 2001), our subsequent work
in the future will focus on proposing fuzziness validation tests based on the
characteristics exhibited by the user as a human interaction, thus
distinguishing the concept of absolute accuracy achieved by the computer.

##  6\. CONCLUSION

In this paper, we propose two interactive vrCAPTCHAs (i.e., task-driven and
bodily motion-driven CAPTCHAs), inspired by the previous 2D traditional
CAPTCHA designs (i.e., text-based, image-rotated, image-puzzled, and image-
selected CAPTCHAs) and combined with the 3D interactivity of VR. We conducted
a user study with six participants to evaluate the feasibility of traditional
CAPTC-HAs and vrCAPTCHAs in VR. We believe that our two vrCAPTCHAs can be an
inspiration for the future design of CAPTCHAs in VR.

###### Acknowledgements.

We are grateful to the six volunteers who were willing to come and participate
in our pre-user study. Xiang Li would like to thank his internship advisors
Prof. Florian ‘Floyd’ Mueller and Rakesh Patibanda, and other members at the
Exertion Games Lab of Monash University for their valuable feedback during the
prototyping of this work.

## References

  * (1)
  * Arnold et al. (2018) Peter Arnold, Rohit Ashok Khot, and Florian ’Floyd’ Mueller. 2018\.  ”You Better Eat to Survive”. In _Proceedings of the Twelfth International Conference on Tangible, Embedded, and Embodied Interaction_. ACM, New York, NY, USA, 398–408.  https://doi.org/10.1145/3173225.3173238
  * Baird et al. (2005) Henry S. Baird, Michael A. Moll, and Sui Yu Wang. 2005.  ScatterType: A legible but hard-to-segment CAPTCHA. In _Proceedings of the International Conference on Document Analysis and Recognition, ICDAR_ , Vol. 2005. 935–939.  https://doi.org/10.1109/ICDAR.2005.205
  * Chew and Tygar (2004) Monica Chew and J. D. Tygar. 2004.  Image recognition CAPTCHAs. In _Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)_ , Vol. 3225. 268–279.  https://doi.org/10.1007/978-3-540-30144-8_23
  * Elson et al. (2007) Jeremy Elson, John R. Douceur, Jon Howell, and Jared Saul. 2007\.  Asirra: A CAPTCHA that exploits interest-aligned manual image categorization. In _Proceedings of the ACM Conference on Computer and Communications Security_. 366–374.  https://doi.org/10.1145/1315245.1315291
  * Feng et al. (2020) Yunhe Feng, Qing Cao, Hairong Qi, and Scott Ruoti. 2020\.  SenCAPTCHA: A Mobile-First CAPTCHA Using Orientation Sensors.  _Proceedings of the ACM on Interactive, Mobile, Wearable and Ubiquitous Technologies_ 4, 2 (jun 2020), 1–26.  https://doi.org/10.1145/3397312
  * Golubitsky and Schaeffer (1985) Martin Golubitsky and David G. Schaeffer. 1985.  _The Recognition Problem_.  Technical Report. 51–116 pages.  https://doi.org/10.1007/978-1-4612-5034-0_2
  * Jospe et al. (2017) Karine Jospe, Agnes Flöel, and Michal Lavidor. 2017\.  The role of embodiment and individual empathy levels in gesture comprehension.  _Experimental Psychology_ 64, 1 (2017), 56–64.  https://doi.org/10.1027/1618-3169/a000351
  * Koutsabasis and Vogiatzidakis (2019) Panayiotis Koutsabasis and Panagiotis Vogiatzidakis. 2019.  Empirical Research in Mid-Air Interaction: A Systematic Review.  _International Journal of Human-Computer Interaction_ 35, 18 (2019), 1747–1768.  https://doi.org/10.1080/10447318.2019.1572352
  * Li and Chen (2020) Xiang Li and Yuzheng Chen. 2020.  Auto-Hierarchical Data Algorithm: Focus on Increasing Users’ Motivation and Duration in Virtual Reality. In _2020 5th IEEE International Conference on Big Data Analytics, ICBDA 2020_. 150–153.  https://doi.org/10.1109/ICBDA49040.2020.9101254
  * Lillibridge et al. (2001) M D Lillibridge, M Abadi, K Bharat, and A Z Broder. 2001\.  Method for selectively restricting access to computer systems.  , 18 pages.  http://www.google.com/patents/US6195698
  * Matthews and Zou (2010) Peter Matthews and Cliff C. Zou. 2010.  Scene tagging: Image-based CAPTCHA using image composition and object relationships. In _Proceedings of the 5th International Symposium on Information, Computer and Communications Security, ASIACCS 2010_. 345–350.  https://doi.org/10.1145/1755688.1755736
  * Mueller and Lockerd (2001) Florian Mueller and Andrea Lockerd. 2001.  Cheese: Tracking mouse movement activity on websites, a tool for user modeling. In _Conference on Human Factors in Computing Systems - Proceedings_.  https://doi.org/10.1145/634067.634233
  * Patibanda et al. (2017) Rakesh Patibanda, Florian ’Floyd’ Mueller, Matevz Leskovsek, and Jonathan Duckworth. 2017\.  Life Tree. In _Proceedings of the Annual Symposium on Computer-Human Interaction in Play_. ACM, New York, NY, USA, 19–31.  https://doi.org/10.1145/3116595.3116621
  * Von Ahn et al. (2004) Luis Von Ahn, Maunei Blum, and John Langford. 2004\.  Telling humans and computers apart automatically.  _Commun. ACM_ 47, 2 (feb 2004), 56–60.  https://doi.org/10.1145/966389.966390
  * Von Ahn et al. (2008) Luis Von Ahn, Benjamin Maurer, Colin McMillen, David Abraham, and Manuel Blum. 2008.  reCAPTCHA: Human-based character recognition via web security measures.  _Science_ 321, 5895 (sep 2008), 1465–1468.  https://doi.org/10.1126/science.1160379
  * Xu et al. (2020a) Wenge Xu, Hai Ning Liang, Yuzheng Chen, Xiang Li, and Kangyou Yu. 2020a.  Exploring Visual Techniques for Boundary Awareness During Interaction in Augmented Reality Head-Mounted Displays. In _Proceedings - 2020 IEEE Conference on Virtual Reality and 3D User Interfaces, VR 2020_. 204–211.  https://doi.org/10.1109/VR46266.2020.1581268453415
  * Xu et al. (2020b) Wenge Xu, Hai-Ning Liang, Qiuyu He, Xiang Li, Kangyou Yu, and Yuzheng Chen. 2020b.  Results and Guidelines From a Repeated-Measures Design Experiment Comparing Standing and Seated Full-Body Gesture-Based Immersive Virtual Reality Exergames: Within-Subjects Evaluation.  _JMIR Serious Games_ 8, 3 (jul 2020), e17972.  https://doi.org/10.2196/17972
  * Xu et al. (2020c) Wenge Xu, Hai Ning Liang, Xiaoyue Ma, and Xiang Li. 2020c.  VirusBoxing: A HIIT-based VR boxing game. In _CHI PLAY 2020 - Extended Abstracts of the 2020 Annual Symposium on Computer-Human Interaction in Play_. 98–102.  https://doi.org/10.1145/3383668.3419958 arXiv:2010.03781
  * Zhai et al. (2005) Shumin Zhai, Per Ola Kristensson, and Barton A. Smith. 2005\.  In search of effective text input interfaces for off the desktop computing.  _Interacting with Computers_ 17, 3 (2005), 229–250.  https://doi.org/10.1016/j.intcom.2003.12.007


# Parallel N-body simulations of planetary systems: a direct approach

Dhananjay Saikumar  H.H. Wills Physics Laboratory, University of Bristol,
Tyndall Avenue, Bristol BS8 1TL, UK.

(February 2021)

###### Abstract

Direct gravitational simulations of n-body systems have a time complexity
$\mathcal{O}({n^{2}})$, which gets computationally expensive as the number of
bodies increases. Distributing this workload to multiple cores significantly
speeds up the computation and is the fundamental principle behind parallel
computing. This project involves simulating (evolving) our solar system for
the next 1000 years (from 2015 to 3015) on the BlueCrystal supercomputer. The
gravitational bodies (planets, moons, asteroids) were successfully simulated,
and the initial states (mass, position and velocity vectors) of the solar
system objects were obtained via NASA’s JPL Horizons web interface. Two
parallel computing domains are investigated: shared and distributed memory
systems.

##  I 1\. Introduction

The transistor plays a central role in computing, and at its core, the
transistor is a binary switch that can regulate the current flow. Transistors
can be arranged differently to create logic gates and perform basic arithmetic
operations. In the 50s, primitive computers transitioned from vacuum tube
transistors to discrete transistors (wired on a circuit board). As the
computing demand grew, wiring many individual transistors together set a
physical limit to the density of transistors on a circuit board. The 60s
brought the development of the metal-oxide-silicon (MOS) integrated circuit
(IC), which used the process of chemical etching to connect the circuit
components (significantly reducing the transistor-circuit size), which soon
became the new standard 1 . The MOS paradigm led to the development of the
microprocessor, an IC which can process data according to instructions
(serial) stored in its memory 2 .

The Modern CPU is a single IC which contains multiple microprocessors
(multiple cores), where each core can run separate instructions
simultaneously. The memory architecture of a generic multi-core processor is
as follows: Starting at the smallest level, every core has a small pool of
fast memory exclusive to itself (L1 cache and a larger, slower L2 cache).
Going a level above, the cores share a larger but relatively slower pool of
memory (L3 cache), allowing individual cores to share data (see Figure 1).
Furthermore, individual CPUs can be linked together via a low latency
interconnected network to distribute large amounts of computing workload.

Figure 1: Memory architecture in a modern CPU processor. Ref 3 .

A serial algorithm contains a set of instructions computed sequentially. In
contrast, parallelisation is a technique which involves breaking down the
serial algorithm into smaller bits, and computing them in parallel on multiple
cores, effectively speeding up the computation 4 . The speedup obtained by a
parallel algorithm running on $p$ cores is defined as:

$S_{p}=\frac{T_{1}}{T_{p}}$ (1)

Where $T_{1}$ and $T_{p}$ are the time, the algorithm takes to run on a single
core and p cores, respectively. Many parallel algorithms require
synchronisation/communication between different distributed tasks. A crucial
aspect of writing parallel code is recognising which tasks need to be
communicated and which don’t. Meanwhile, ‘embarrassingly parallel algorithms’
(rarely need to communicate) are the easiest to parallelise. Intuitively, a
perfect program would speed up linearly with $p$. But no algorithm in the real
world is perfectly optimal. The speedup a parallel algorithm can achieve is
given by Amdahl’s law 5 :

$T_{p}=T_{1}\left(F_{s}+{\frac{F_{p}}{p}}\right)$ (2)

Where $T_{p}$ and $T_{1}$ are the same as before, $F_{p}$ and $F_{s}$ are the
fraction of the algorithm, which is parallelizable and sequential,
respectively. Ultimately, the $F_{s}$ sets the limit to the maximum speedup
obtainable by an algorithm. For example, if 25% of the algorithm is
sequential, the maximum speedup achievable is 400%, independent of
($p\geqslant p_{o}$) for some $p_{o}$, which depends on the algorithm.

##  II 2\. Direct N-body simulation

This work aims to parallelize the N-body simulation of planetary systems. The
simulation contains around 5000 solar system bodies (8 planets + Pluto, 191
natural satellites, 280 asteroid belt objects and 4500 other miscellaneous
objects). N-body simulations are extensively used in astrophysics to study
dynamical systems such as galaxy mergers, the evolution of star clusters, dark
matter filaments, and more 6 . In this simulation, the bodies are assumed to
be point particles. The total force exerted on a particle ($i$) by other
particles is described by Newton’s law of universal gravitation:

$\vec{F_{i}}=\sum_{j\neq i}\vec{F}_{ij}=\sum_{j\neq
i}\frac{Gm_{i}m_{j}}{(\vec{r_{i}}-\vec{r_{j}})^{2}}\hat{r}$ (3)

Where $F_{i,j}$ is the force exerted by the jth particle, $m_{j}$ and $r_{j}$
is the mass and position vector of the jth particle, respectively. This
calculation is repeated for every particle in the system; since there are n
particles in total, the time complexity of this computation is $O(n^{2})$. The
force calculation is broken down into 3 parts (calculating forces in every
direction ($\hat{x},\hat{y},\hat{z}$)). The general structure of the parallel
algorithms used here is as follows:

The master core holds the current state (predefined position and velocity
vectors) in memory. Every slave core is associated with a unique set of
particles. The force is computed in parallel (each slave core calculates the
force exerted on each of their particle by all particles in the system, in-
turn calculating their acceleration ($\hat{a_{x}},\hat{a_{y}},\hat{a_{z}}$)).
The master core uses this (n$\times$3) acceleration matrix to update the
previous state of the system via the leap-frog technique (kick-drift-kick) 6 .

$\vec{v}_{i+1/2}=\vec{v}_{i}+\vec{a}_{i}\frac{dt}{2}$ (4)
$\vec{r}_{i+1}=\vec{r}_{i}+\vec{v}_{i+1/2}dt$ (5)
$\vec{v}_{i+1}=\vec{v}_{i+1/2}+\vec{a}_{i+1}\frac{dt}{2}$ (6)

Where $i$ is the current iteration label, $\vec{v}_{i+1}$ and $\vec{r}_{i+1}$
is the updated position and velocity vector, and $dt$ is the discrete time-
step. The number of calculations can be reduced by half by utilising Newton’s
third law $\vec{F}_{ij}=-\vec{F}_{jj}$, although this requires an additional
communication/synchronisation step. The calculations discussed above (eq 4,5
and 6) are iterated $K$ number of times where ($K\times dt$ = total time
simulated). A smaller time-step offers better accuracy but increases number of
iterations (computationally expensive).

For a general N-body simulation, as the system evolves, the distance between
two objects may approach 0, which generates a singularity in eq (3) (infinite
acceleration). However, this isn’t realistic since particles are finite sized.
The singularity is avoided by introducing a softening term $\epsilon$ to the
denominator of eq (3). This value needs to be small to keep the simulation
realistic ($\epsilon\ll r$) 7 . The softening term plays a crucial role when
simulating gas clouds, galactic mergers which involve colliding particles.
However, the softening term does not significantly impact the simulations of
planetary systems because these systems tend to have stable orbits (no
collisions). The parallel algorithm here is implemented separately via shared
memory and distributed memory systems.

###  (a) 2.1 Shared memory: OpenMP

OpenMP (Open Multiprocessing) is an example of a shared memory interface. It
uses the fact that cores on the same processor share a layer of memory (L3
cache), which eliminates the need for the cores to communicate (unlike MPI,
see later). This reduces memory usage since only a single copy of the state
needs to be kept in memory. The OpenMP code initially runs on a master thread.
The force is calculated in parallel. Once this is done, each core updates the
shared memory layer with its piece of calculation, and then the serial code
(running on the master thread) updates the state of the system via eq (4,5,6).
Furthermore, OpenMP allows for dynamic load balancing (cores that finish early
can be assigned more work), improving performance. A significant drawback of
using OpenMP is that it is limited to a single processor (cache memory is not
shared across multiple processors).

###  (b) 2.2 Distributed memory: MPI

MPI (Message Passing Interface protocol) is an example of a distributed memory
interface. The MPI code is designed to run on multiple cores which don’t share
a layer of memory. In order to transfer data, the cores must communicate with
each other. This independence from a shared memory architecture allows MPI to
scale with the total number of cores in the system (a cluster of
interconnected processors).

Unlike OpenMP, the MPI code runs on all the cores simultaneously. Tasks are
split according to the rank of each core. A typical MPI hierarchy consists of
a master core (rank 0) and slave cores. In this simulation, the master core
distributes an equal amount of force calculations (first communication step)
to every slave core. Once this is done, the slave cores send their
calculations to the master core (second communication step). The master core
then updates the system’s previous state via eq (4,5,6). Depending on where
the data is temporarily stored, cores assigned the same amount of work may not
finish simultaneously.

Communication is a crucial aspect of MPI since sending and collecting data
from the slave cores is necessary. Communication also causes overheads:
Although communication latency may be low, recipient cores may have to wait
occasionally since the data has to be packaged before being sent, resulting in
inefficiencies. This algorithm sends and receives data using the MPI.Send and
MPI.Recv commands require communication to take place before starting/resuming
any work (blocking communication), causing inefficiencies. Non-blocking
communication may result in race conditions (multiple cores may try to
overwrite the same piece of data). Due to its shared memory architecture,
OpenMP is expected to perform better than MPI when evaluated on a single
processor. However, MPI is expected to offer better performance when evaluated
on multiple processors (a large number of cores).

###  (c) 2.3 Animation

2D animations of 3D simulations were generated (easier to visualise). The
initial states (mass, position and velocity vectors) of the aforementioned
solar system objects were obtained via NASA’s JPL Horizons web interface. The
simulation was computed on BlueCrystal and was ‘evolved’ for 1000 years.
Figure 2 shows the state of the solar system on 01/01/2015 (start date) and
21/12/2020, where the great conjecture (alignment of Jupiter, Saturn and
Earth) can be seen.

Figure 2: A snapshot of the animation at two different times. This simulation
contains 5000 solar system objects. The main asteroid belt surrounds the inner
planets. The Jupiter and Saturn systems include 67 and 80 natural satellites,
respectively. Uranus and Neptune have been cropped out because their large
orbits would drastically shrink the image. The Great conjecture of 2020 can be
seen on the right.

##  III 3\. Performance

Different variations of the algorithm: OpenMP (cython), MPI (python), and
serial (python) were implemented and timed on the BlueCrystal supercomputer.
The speed up ($S_{p}$) from eq (1) is used as a measure of the algorithm’s
performance. Every measurement was repeated five times, and the mean and the
standard deviation were used to generate the error bars. The spread in
measurement is inherently unavoidable since it arises from background
processes running on the same processor, potential overheads in accessing
memory etc. The unit of time in the plots is arbitrary.

###  (a) 3.1 Scaling: Model size ($n$)

Figure 3 depicts how the performance of the algorithms scale with the model
size ($n$). The algorithms were executed on a single BlueCrystal processor (16
$\times$ 2.6 GHz SandyBridge cores), using all 16 cores. For very small models
($n<50$), the calculations are extremely small such that the serial (single
core) algorithm performs better than MPI (calculations in serial are faster
than distributing the calculations in MPI). Serial code also outperforms
OpenMP for small models because the parallel cores can only access the shared
cache memory one at a time (resulting in wait time). Additionally, the serial
code (running on a single core) uses the fastest type of memory (L1 cache:
$O(1000)$ GB/s), whereas the OpenMP code uses the shared memory layer, which
is slower (L3 cache: $O(100)$ GB/s). As $n$ increases, both parallel
algorithms offer significant speedup over the serial algorithm ($S_{p}=$ 10
and 8.3 for OpenMP and MPI). As expected, OpenMP outperforms MPI due to the
lack of communication overheads. It should be mentioned that math operations
in cython (OpenMP) are much faster than python (MPI). Furthermore, ‘for loops’
are much faster in cython due to the predefined variable type.

###  (b) 3.2 Scaling: Number of cores ($p$)

Figure 4 represents the performance of both parallel algorithms as a function
of the number of cores $p$ for a fixed model size ($n=$ 5000). Here the OpenMP
algorithm was timed on a single BlueCrystal processor, and the MPI algorithm
was timed on two processors, utilising a total of 32 cores.

Figure 3: Comparing how the algorithms scale with the model size ($n$). All
algorithms were executed on a single BlueCrustal node (16 cores). The solid
line represents the elapsed time (all algorithms show the $n^{2}$ time
complexity), and the dotted line represents the speedup.

Figure 5 shows the speedup obtained by the MPI code for a range of cores
($2\leq p\leq 32$) and multiple model sizes ($1000\leq n\leq 15000$). The
performance of each model size scales differently with $p$. Smaller models
($n\leq 2000$) require smaller calculations, which can be calculated optimally
on a small number of cores. Distributing this calculation to many cores takes
additional (extra communication) time, reducing the performance.

Larger models ($5000\leq n\leq 15000$) scale almost linearly with the number
of cores. Although, it takes longer to package and distribute huge models,
which is why ($n=15000$) performs slightly worse than ($n=5000,10000$).
Although not plotted here, the efficiency of the algorithm defined as
($S_{p}/p$) gives an insight into how well the algorithm utilises all the
cores assigned to it. As the speedup stagnates for model sizes
($n=1000,2000$), the algorithm’s efficiency decreases with increasing $p$.

Figure 4: Comparing how the algorithms scale with the number of cores ($p$),
for constant model size ($n=5000$). The OpenMP code was executed on a single
BlueCrustal node (16 cores), and the MPI code was run on two BlueCrustal
nodes. The solid line represents the elapsed time, and the dotted line
represents the speedup. As expected OpenMP outperforms MPI on a single
processor ($p\leq 16$). But MPI outperforms OpenMP when evaluated on a larger
number of cores.

Load balancing is the largest source of overheads in both MPI and OpenMP
algorithms. Some cores may finish their calculations faster due to: memory
latency (depending on where the cache is stored temporarily) and background
interference. This results in some cores finishing up faster, staying idle
till all the cores have caught up (barrier synchronisation). OpenMP’s parallel
‘for loops’ allows for dynamic load balancing; (if a core has finished its
work, it can be assigned more work in the meantime). Whereas the static load
balancing in OpenMP is the same as the MPI implementation of the code.
Traditionally, N-body simulations use ‘for loops’ to calculate the distance
between particles, determining the force. In contrast, the algorithms here
(Serial, OpenMP, and MPI) use NumPy matrices (vectorisation) to calculate the
distances, which is why dynamic load balancing couldn’t be investigated.
Vectorised force calculations are significantly faster than the ‘for loops’.
Figure 6 compares the speedup ($T_{loop}/T_{vectorized}$) obtained by
vectorising the force calculations for multiple model sizes ($n$), running on
a single core ($p=1$).

##  IV 4\. Discussion & improvements

###  (a) 4.1 Current algorithm

Although both (shared and distributed memory) algorithms compute the forces in
parallel, the system’s state is updated on the master core. For larger model
sizes, this update stage consumes quite a lot of time. A potential improvement
would be to perform this computation in parallel as well. This would require
two additional communication/synchronisation steps but could potentially speed
up the algorithm. However, this approach would slow down the performance of
the model size is too small for the same reasons discussed above. Compared to
the point-to-point communication commands (MPI.Send and MPI.Recv), the
collective MPI commands (MPI.Bcast and MPI.Gather) perform equally (if not
worse for smaller models), which is why the collective MPI commands were not
implemented in the MPI code.

Figure 5: Comparing how the MPI algorithm scales with the number of cores
($2\leq p\leq 32$), for multiple model sizes ($5000\leq n\leq 15000$). Each
model size scales differently with the number of processes. Smaller models
don’t continue to linearly scale $p$ since it takes longer to distribute the
data compared to performing the calculation itself.  Figure 6: The speedup
obtained (serial algorithm) by replacing the ‘for loops’ with vectorised
operations (NumPy matrices) to calculate the distances (particle separation).
All the algorithms (Serial, OpenMP, and MPI) used vectorised force
calculations.

###  (b) 4.2 Memory interfaces

The MPI & OpenMP memory architectures can be combined into a hybrid approach.
This approach uses multiple processors (via MPI) and runs the OpenMP algorithm
on every processor (cores in the same processor share memory). This Hybrid
approach allows for dynamic load balancing to be scaled over a cluster of
processors, improving the performance by up to 20% 9  compared to the state-
of-the-art MPI algorithm. A new programming API known as High-Performance
ParalleX (HPX) provides an asynchronous programming/memory environment which
performs 30% better than the best Hybrid model to date 10 .

###  (c) 4.3 Computing architectures

A typical CPU contains $\mathcal{O}(10)$ powerful cores built on the MIMD
(Multiple Instruction, Multiple Data) design. In contrast, the GPU contains
$\mathcal{O}(1000)$ less powerful cores built on the SIMD (Single instruction,
multiple data) design, making the GPU ideal for running multiple identical
computations simultaneously (force calculations in this case). Studies
indicate that GPU accelerated N-body simulations outperform (200%) CPU
exclusive systems 11 .

Recently, a new type of processor called the IPU (Intelligence Processing
Unit) was explicitly launched and designed for machine learning applications.
The IPU is built on the MIMD paradigm and contains 1216 individual processing
units called tiles which can communicate with each other extremely quickly (45
TB/s, faster than a typical L1 cache). Each tile can run six threads
simultaneously, resulting in a total of $6\times 1216=7296$ threads which can
be run in parallel on a single IPU processor 12 . Since the primary source of
overheads in the MPI algorithm is communication, the high-speed bandwidth
offered by the IPU holds the potential to drastically speed up n-body
simulations (via a distributed-memory approach). The particle physics
department at the University of Bristol uses the IPU to study and develop High
energy physics (HEP) algorithms for the LHCb/CMS experiment at CERN. The
performance of the MPI algorithm (written in python) couldn’t be evaluated on
the IPU since the IPU’s parallel programming API (Poplar) only supports C++ at
the moment. However, the python version Poplar (supporting MPI) is expected to
be released soon.

###  (d) 4.4 Alternate Methods

Finally, alternate methods for n-body simulations exist. The direct approach
has a time complexity of $O(N^{2})$. The tree algorithm approximates the
forces by dividing the simulation space into an octree. Force calculations are
computed individually for particles below some threshold distance $\theta$
from the current particle. If a cluster of particles is beyond this threshold
distance, then the cluster is considered a single particle, with its centre
being the cluster’s centre of mass. This reduces the total number of force
calculations needed to be performed at every time step, resulting in time
complexity of $O(N\log(N))$ 13 . The Fast Multipole algorithm improves upon
the tree algorithm by exploiting that nearby particle in a gravitational field
experience similar acceleration from distant clusters of particles. The force
contribution from a distant cluster only needs to be computed once, reducing
the number of force calculations required, resulting in a time complexity of
$O(N)$ 14 .

##  V 5\. Conclusion

The direct N-body algorithm was parallelised via two distinct memory systems;
shared memory (OpenMP) and distributed memory (MPI). Both of these approaches
were examined to evaluate the effectiveness of parallelization. Here, the
speedup ($S_{p}$) was used as the performance metric. The OpenMP algorithm
outperforms MPI algorithm since the shared memory architecture eliminates the
need for the cores to communicate. However, the OpenMP approach is limited to
a single processor (processors clusters don’t share cache memory) which limits
the maximum speedup obtainable on the number of cores a processor contains. In
contrast, the distributive memory architecture of the MPI algorithm allows it
to utilise multiple processors, which outperforms the OpenMP algorithm when
evaluated on a large number of cores. The performance of each model size
scales differently with the number of cores. Smaller models don’t benefit much
by the parallelization, since its often faster to perform the calculations on
a single core than to distribute/perform the calculations in parallel. As the
model size increases, the performance almost scales linearly with the number
of cores $p$. Although due to Amdahl’s law, the maximum speedup which can be
obtained by an algorithm becomes independent of $p$ after ($p\geq p_{o}$)
where $p_{o}$ is the optimal number of cores. This $p_{o}$ depends on the
faction of the code which cannot be parallelized (sequential). Alternate
methods of N-body simulations (Tree code, Fast Multipole) were briefly
discussed, since they drastically reduce the time complexity of the simulation
by incorporating some approximations.

##  VI References

## References

  * (1) 1960: Siliconengine Metal-Oxide-Semiconductor (MOS) demonstrated, computerhistory (2014), [ONLINE] Available at: www.computerhistory.org/siliconengine [Accessed 11 February 2021].
  * (2) The Rise of MOS Technology & The 6502, commodore (2006), [ONLINE] Available at: www.commodore.ca/ [Accessed 11 February 2021].
  * (3) Computer Architecture: A Quantitative Approach, J. L. Hennessy, D. A. Patterson, Morgan Kaufmann publishers, (2011)
  * (4) Parallel Computing: Review and Perspective, Y. Li, Z. Zhang y, 2018 5th International Conference on Information Science and Control Engineering (ICISCE), (2018)
  * (5) Amdahl’s Law in the Multicore Era, M. D. Hill et al, Computer vol. 41, (2008)
  * (6) N-body simulations of gravitational dynamics, W. Dehnen et al, Eur. Phys. J. Plus, (2011)
  * (7) N Towards optimal softening in three-dimensional N-body codes, W. Dehnen, Royal Astronomical Society, (2001)
  * (8) Time stepping N-body simulations, T. Quinnl et al, arXiv: Astrophysics, (1997)
  * (9) Hybrid MPI-OpenMP Paradigm on SMP clusters: MPEG-2 Encoder and n-body Simulation, K. Yamazaki et al, arXiv: Distributed, Parallel, and Cluster Computing, (2012)
  * (10) A Massively Parallel Distributed N-body Application Implemented with HPX, Z. Khatami et al, 7th Workshop on Latest Advances in Scalable Algorithms for Large-Scale Systems, (2016)
  * (11) Toward efficient GPU-accelerated N-body simulations, M.J. Stock, 46th AIAA Aerospace Sciences Meeting and Exhibit, (2012)
  * (12) Dissecting the Graphcore IPU Architecture via Microbenchmarking, Z. Jia, B. Tillman et al, arXiv: Distributed, Parallel, and Cluster Computing, (2019)
  * (13) A hierarchical O(N log N) force-calculation algorithm, J. Barnes, P. Hut, Nature 324, (1986)
  * (14) A Fast Algorithm for Particle Simulations, L. Greengard, V. Rokhlin, Journal of Computational Physics, (1987)


E-mail<EMAIL_ADDRESS>
# Initial operations of the Soft X-ray Imager onboard XRISM

Hiromasa Suzuki  Japan Aerospace Exploration Agency, Institute of Space and
Astronautical Science, 3-1-1 Yoshino-dai, Chuo-ku, Sagamihara, Kanagawa
252-5210, Japan  Tomokage Yoneyama  Faculty of Science and Engineering, Chuo
University, 1-13-27 Kasuga, Bunkyo, Tokyo 112-8551, Japan  Shogo B. Kobayashi
Department of Physics, Faculty of Science, Tokyo University of Science,
Kagurazaka, Shinjuku-ku, Tokyo 162-0815, Japan  Hirofumi Noda  Astronomical
Institute, Tohoku University, 6-3 Aramakiazaaoba, Aoba-ku, Sendai, Miyagi
980-8578, Japan  Hiroyuki Uchida  Department of Physics, Kyoto University,
Kitashirakawa Oiwake-cho,Sakyo-ku, Kyoto, Kyoto 606-8502, Japan  Kumiko K.
Nobukawa  Department of Physics, Kindai University, 3-4-1 Kowakae, Higashi-
Osaka, Osaka 577-8502, Japan  Kouichi Hagino  Department of Physics,
University of Tokyo, 7-3-1 Hongo, Bunkyo, Tokyo 113-0033, Japan  Koji Mori
Faculty of Engineering, University of Miyazaki, 1-1 Gakuen Kibanadai Nishi,
Miyazaki, Miyazaki 889-2192, Japan  Hiroshi Tomida  Japan Aerospace
Exploration Agency, Institute of Space and Astronautical Science, 3-1-1
Yoshino-dai, Chuo-ku, Sagamihara, Kanagawa 252-5210, Japan  Hiroshi Nakajima
College of Science and Engineering, Kanto Gakuinn University, Kanazawa-ku,
Yokohama, Kanagawa 236-8501, Japan  Takaaki Tanaka  Department of Physics,
Konan University, 8-9-1 Okamoto, Higashinada, Kobe, Hyogo 658-8501, Japan
Hiroshi Murakami  Faculty of Informatics, Tohoku Gakuin University, 3-1
Shimizukoji, Wakabayashi-ku, Sendai, Miyagi 984-8588, Japan  Hideki Uchiyama
Science Education, Faculty of Education, Shizuoka University, Suruga-ku,
Shizuoka, Shizuoka 422-8529, Japan  Masayoshi Nobukawa  Faculty of Education,
Nara University of Education, Nara, Nara 630-8528, Japan  Yoshiaki Kanemaru
Japan Aerospace Exploration Agency, Institute of Space and Astronautical
Science, 3-1-1 Yoshino-dai, Chuo-ku, Sagamihara, Kanagawa 252-5210, Japan
Yoshinori Otsuka  Faculty of Engineering, University of Miyazaki, 1-1 Gakuen
Kibanadai Nishi, Miyazaki, Miyazaki 889-2192, Japan  Haruhiko Yokosu  Faculty
of Engineering, University of Miyazaki, 1-1 Gakuen Kibanadai Nishi, Miyazaki,
Miyazaki 889-2192, Japan  Wakana Yonemaru  Faculty of Engineering, University
of Miyazaki, 1-1 Gakuen Kibanadai Nishi, Miyazaki, Miyazaki 889-2192, Japan
Hanako Nakano  Faculty of Engineering, University of Miyazaki, 1-1 Gakuen
Kibanadai Nishi, Miyazaki, Miyazaki 889-2192, Japan  Kazuhiro Ichikawa
Faculty of Engineering, University of Miyazaki, 1-1 Gakuen Kibanadai Nishi,
Miyazaki, Miyazaki 889-2192, Japan  Reo Takemoto  Faculty of Engineering,
University of Miyazaki, 1-1 Gakuen Kibanadai Nishi, Miyazaki, Miyazaki
889-2192, Japan  Tsukasa Matsushima  Faculty of Engineering, University of
Miyazaki, 1-1 Gakuen Kibanadai Nishi, Miyazaki, Miyazaki 889-2192, Japan
Marina Yoshimoto  Department of Earth and Space Science, Osaka University, 1-1
Machikaneyama-cho, Toyonaka, Osaka 560-0043, Japan  Mio Aoyagi  Department of
Earth and Space Science, Osaka University, 1-1 Machikaneyama-cho, Toyonaka,
Osaka 560-0043, Japan  Kohei Shima  Department of Earth and Space Science,
Osaka University, 1-1 Machikaneyama-cho, Toyonaka, Osaka 560-0043, Japan  Yuma
Aoki  Department of Physics, Kindai University, 3-4-1 Kowakae, Higashi-Osaka,
Osaka 577-8502, Japan  Yamato Ito  Department of Physics, Kindai University,
3-4-1 Kowakae, Higashi-Osaka, Osaka 577-8502, Japan  Kaito Fukuda  Department
of Physics, Kindai University, 3-4-1 Kowakae, Higashi-Osaka, Osaka 577-8502,
Japan  Honoka Kiyama  Department of Physics, Kindai University, 3-4-1 Kowakae,
Higashi-Osaka, Osaka 577-8502, Japan  Daiki Aoki  Department of Physics,
Faculty of Science and Technology, Tokyo University of Science, 2641 Yamazaki,
Noda, Chiba 270-8510, Japan  Kaito Fujisawa  Department of Physics, Faculty of
Science and Technology, Tokyo University of Science, 2641 Yamazaki, Noda,
Chiba 270-8510, Japan  Yasuyuki Shimizu  Department of Physics, Faculty of
Science and Technology, Tokyo University of Science, 2641 Yamazaki, Noda,
Chiba 270-8510, Japan  Mayu Higuchi  Department of Physics, Faculty of Science
and Technology, Tokyo University of Science, 2641 Yamazaki, Noda, Chiba
270-8510, Japan  Masahiro Fukuda  College of Science and Engineering, Kanto
Gakuinn University, Kanazawa-ku, Yokohama, Kanagawa 236-8501, Japan  Natsuki
Sakamoto  Hiroshima Astrophysical Science Center, Hiroshima University, 1-3-1
Kagamiyama, Higashi-Hiroshima, Hiroshima 739-8526, Japan  Ryuichi Azuma
Department of Physics, Konan University, 8-9-1 Okamoto, Higashinada, Kobe,
Hyogo 658-8501, Japan  Shun Inoue  Department of Physics, Kyoto University,
Kitashirakawa Oiwake-cho,Sakyo-ku, Kyoto, Kyoto 606-8502, Japan  Takayoshi
Kohmura  Department of Physics, Faculty of Science and Technology, Tokyo
University of Science, 2641 Yamazaki, Noda, Chiba 270-8510, Japan  Makoto
Yamauchi  Faculty of Engineering, University of Miyazaki, 1-1 Gakuen Kibanadai
Nishi, Miyazaki, Miyazaki 889-2192, Japan  Isamu Hatsukade  Faculty of
Engineering, University of Miyazaki, 1-1 Gakuen Kibanadai Nishi, Miyazaki,
Miyazaki 889-2192, Japan  Hironori Matsumoto  Department of Earth and Space
Science, Osaka University, 1-1 Machikaneyama-cho, Toyonaka, Osaka 560-0043,
Japan  Hirokazu Odaka  Department of Earth and Space Science, Osaka
University, 1-1 Machikaneyama-cho, Toyonaka, Osaka 560-0043, Japan  Tsunefumi
Mizuno  Hiroshima Astrophysical Science Center, Hiroshima University, 1-3-1
Kagamiyama, Higashi-Hiroshima, Hiroshima 739-8526, Japan  Tessei Yoshida
Japan Aerospace Exploration Agency, Institute of Space and Astronautical
Science, 3-1-1 Yoshino-dai, Chuo-ku, Sagamihara, Kanagawa 252-5210, Japan
Yoshitomo Maeda  Japan Aerospace Exploration Agency, Institute of Space and
Astronautical Science, 3-1-1 Yoshino-dai, Chuo-ku, Sagamihara, Kanagawa
252-5210, Japan  Manabu Ishida  Japan Aerospace Exploration Agency, Institute
of Space and Astronautical Science, 3-1-1 Yoshino-dai, Chuo-ku, Sagamihara,
Kanagawa 252-5210, Japan  Takeshi G. Tsuru  Department of Physics, Kyoto
University, Kitashirakawa Oiwake-cho,Sakyo-ku, Kyoto, Kyoto 606-8502, Japan
Kazutaka Yamaoka  Department of Physics, Nagoya University, Chikusa-ku,
Nagoya, Aichi 464-8602, Japan  Takashi Okajima  NASA’s Goddard Space Flight
Center, Greenbelt, MD 20771, USA  Takayuki Hayashi  NASA’s Goddard Space
Flight Center, Greenbelt, MD 20771, USA  Center for Space Science and
Technology, University of Maryland, Baltimore County (UMBC), Baltimore, MD
21250, USA  Junko S. Hiraga  Department of Physics, Kwansei Gakuin University,
2-2 Gakuen, Sanda, Hyogo 669-1337, Japan  Masanobu Ozaki  Advanced Technology
Center, National Astronomical Observatory of Japan, Mitaka, Tokyo 181-8588,
Japan  Tadayasu Dotani  Japan Aerospace Exploration Agency, Institute of Space
and Astronautical Science, 3-1-1 Yoshino-dai, Chuo-ku, Sagamihara, Kanagawa
252-5210, Japan  Department of Space and Astronautical Science, School of
Physical Sciences, SOKENDAI (The Graduate University for Advanced Studies),
3-1-1 Yoshino-dai, Chuou-Ku, Sagamihara, Kanagawa 252-5210, Japan  Hiroshi
Tsunemi  Department of Earth and Space Science, Osaka University, 1-1
Machikaneyama-cho, Toyonaka, Osaka 560-0043, Japan  Kiyoshi Hayashida
Department of Earth and Space Science, Osaka University, 1-1 Machikaneyama-
cho, Toyonaka, Osaka 560-0043, Japan

###### Abstract

XRISM (X-Ray Imaging and Spectroscopy Mission) is an astronomical satellite
with the capability of high-resolution spectroscopy with the X-ray
microcalorimeter, Resolve, and wide field-of-view imaging with the CCD camera,
Xtend. The Xtend consists of the mirror assembly (XMA: X-ray Mirror Assembly)
and detector (SXI: Soft X-ray Imager). The components of SXI include CCDs,
analog and digital electronics, and a mechanical cooler. After the successful
launch on September 6th, 2023 (UT) and subsequent critical operations, the
mission instruments were turned on and set up. The CCDs have been kept at the
designed operating temperature of $-110$∘C after the electronics and cooling
system were successfully set up. During the initial operation phase, which
continued for more than a month after the critical operations, we verified the
observation procedure, stability of the cooling system, all the observation
options with different imaging areas and/or timing resolutions, and operations
for protection against South Atlantic Anomaly. We optimized the operation
procedure and observation parameters including the cooler settings, imaging
areas for the specific modes with higher timing resolutions, and event
selection algorithm. We summarize our policy and procedure of the initial
operations for SXI. We also report on a couple of issues we faced during the
initial operations and lessons learned from them.

###### keywords:

X-rays, X-ray astronomy, XRISM, Xtend, SXI, X-ray CCD

##  1 Introduction: Soft X-ray Imager (SXI) onboard XRISM

X-Ray Imaging and Spectroscopy Mission (XRISM)[1, 2, 3] is the Japan’s 7th
X-ray astronomical satellite mission, which is equipped with the
microcalorimeter “Resolve”[4] and large field-of-view CCD camera “Xtend”[5, 6,
7] in combination with the X-ray mirror assemblies[8, 9]. XRISM was
successfully launched into a low-earth orbit on September 6th, 2023 (UT). The
focal plane detector of Xtend is the Soft X-ray Imager (SXI), which is back-
illuminated, fully-depleted X-ray CCDs [10, 11]. Xtend is designed to cover a
large field of view ($38^{\prime}\times 38^{\prime}$) with an angular
resolution of $<1\mbox{$.\mkern-4.0mu^{\prime}$}7$. The required energy
resolution is $<200$ eV at 6 keV, typical for X-ray CCD sensors.

SXI is composed of SXI-DE (Digital Electronics), SXI-PE (Pixel processing
Electronics), SXI-S (sensor part), and SXI-CD (cooler driver). SXI-S consists
of the FE (Front-end Electronics), video boards, four CCD chips installed on
the cold plate, and 1ST (single-stage Stirling cooler). SXI-PE has two mission
I/O (MIO) boards, and each runs two CCDs by generating CCD clocking patterns.
Each CCD chip consists of two segments “AB” and “CD”, for which frame images
are read out individually. The designed operating temperature of the CCDs is
$-110$∘C. The CCDs are equipped with an optical blocking filter made of
Al[12]. We have four observation modes of SXI, the full-window, 1/8-window,
0.1-s burst, and 1/8-window+burst modes. The frame cycle is 4 s for all the
modes. The frame exposure is 3.96 s for the full-window mode, and is reduced
to 0.46 s, 0.06 s, and 0.06 s for the 1/8-window, 0.1-s burst, and
1/8-window+burst modes, respectively. The two modes with a small imaging area
(1/8-window and 1/8-window+burst) are intended for bright point-like sources,
to avoid the pile-up of photons.[13] The 0.1-s burst mode is primarily for
calibration purposes. To achieve the desired energy resolution, we
artificially inject charges into the imaging area[14, 15, 16]. We inject
charges into every 160th physical row, which corresponds to 80th logical row
after the on-chip $2\times 2$ binning.

##  2 Initial operation procedure

###  2.1 Overview

We began operations to start up SXI on Oct. 17, 2023 (UT), 40 days after the
launch. Table 1 summarizes our initial operation procedures. We turned on the
electronics in the first four days, then started cooling of the CCDs. We spent
about a month for optimization and verification of operation and observation
parameters. SXI has been in the nominal operation phase from Feb. 2024, but we
decided to make an additional adjustment of the charge-injection rows in Mar.
2024. We describe each procedure in the following subsections.

Table 1: Summary of the initial operations of SXI Date and Time (UT) | Operation | Note
---|---|---
2023 Oct. 17 03:08 | SXI-PE on |
2023 Oct. 17 03:09 | SXI-DE on |
2023 Oct. 18 04:10 | SXI-S-FE on | CCD temperature monitoring started
2023 Oct. 18 05:47 | Video on |
2023 Oct. 18–19 | CCD health check ($\sim 0$∘C) | Full-window mode verified
2023 Oct. 20 03:10 | SXI-CD on | CCD heater control started
2023 Oct. 20 04:08 | CCD cooling started |
2023 Oct. 21–22 | CCD health check ($-110$∘C) | Full-window and 0.1-s burst modes
|  | verified
2023 Nov. 1–2 | CCD health check ($-110$∘C) | 1/8-window and 1/8-window+burst
|  | modes verified
2023 Nov. 1 21:31 | 1/8-window position adjusted | 1/8-window mode
2023 Nov. 2 16:29 | 1/8-window position adjusted | 1/8-window+burst mode
2023 Nov. 2 18:07 to Nov. 9 03:48 | Observation interrupted | See Section 4.1
2023 Nov. 18 14:50 | Bad columns masked | CCD3, Segment 2
2024 Mar. 10 06:27 | Charge Injection rows adjusted |
2024 Mar. 10 06:26 to Mar. 11 00:51 | Inappropriate dark level calculation | See Section 4.2

###  2.2 Starting up the electronics

Here we summarize the procedure of the start-up operations of the electronics,
SXI-PE, SXI-DE, SXI-S-FE, and SXI-CD. Figure 1 shows the timeline chart of our
operations starting from the startup of DE to the temperature stabilization of
the CCDs at $-110$∘C. We confirmed that the current and power of each
component were consistent with the values from on-ground tests when we turned
on each. We note that the $\approx 1.5$ hr variability of the current of the
electronics seen in the top panel of Figure 1 is due to the variable
spacecraft bus voltage, which depends on the satellite location and direction
of the Sun. After the four FEs were turned on, the CCD temperature monitoring
became available. Then we turned on the CD and started cooling of the CCDs.

Figure 1: Timeline chart of the SXI house-keeping data related to the
electronics and cooling system during the start-up operations.

###  2.3 CCD health check and countermeasure against “anomalous charge”
problem

We confirmed the health of the CCDs by examining raw frame images. We tested
the full-window mode before beginning the CCD temperature control, and all the
four modes at $-110$∘C. Figure 2 shows in-orbit raw frame images at $-110$∘C
obtained on Oct. 21, 2023, which are almost identical to those obtained on
ground except for cosmic-ray induced events.

Because we sometimes experienced the “anomalous charge” problem111Large amount
of charges seem to be injected into the imaging area, making a large fraction
of the pixels in a frame saturated with the pulse height of 4095 ch. The cause
is yet to be identified. See Noda et al., SPIE, in prep.[17] for details. in
on-ground tests, we had to prepare a countermeasure procedure against it in
case the problem appears in orbit as well. Figure 3 is the flow chart of this
procedure. We would have switched to the countermeasure clocking modes if the
anomalous charges appeared in the raw frame images either before or after the
temperature control started. Fortunately, in reality, we did not find any
evidence for this problem in orbit.

Figure 2: In-orbit raw frame images at $-110$∘C and a comparison with on-
ground frames. The eight white rows in each frame are the charge-injection
rows, where the pulse heights are saturated at 4095 ch. The color scale is the
same for all the frames (0–4095 ch). The white dots and tracks seen in the in-
orbit frame images are cosmic-ray induced events. Figure 3: In-orbit operation
procedure against the anomalous charge problem. In reality, we did not
experience the anomalous charges, and thus we followed the simplest (leftmost)
case.

###  2.4 Verification of the performance of CCD temperature control

The CCD temperature has been controlled since Oct. 20, 2023 (Figure 1). We
confirmed the cooling performance of the 1ST and its stability. In combination
with the two heaters attached to the cold plate, the cooling system
successfully keeps the operating temperature of the CCDs, $-110$∘C. We note
that the original target temperature ($-111.3$∘C) was found to be slightly
offset from the desired one, thus we adjusted it on Oct. 21. In Figure 1, one
can see that only the heater of MIO1 is working mostly, indicating that the
heater duty is $\approx 50\%$.

###  2.5 Verification of protection against South Atlantic Anomaly passages

In order to protect the CCDs from degrading due to enhanced radiation in the
South Atlantic Anomaly (SAA) region, we stop the CCD clocking and application
of the back-bias voltage during SAA passages. Following our original plan, we
tried to make this operation automatic based on the satellite location. During
our test of this automated operation starting from Nov. 9, 2023, however, we
found that calculated SAA-in and out time was incorrect and thus the
operations for protection were not working correctly, which later turned out
to be due to a minor error in the orbit calculation. Therefore we decided not
to use this function based on the satellite location, and rather issue time-
set commands.

When the satellite leaves SAA, SXI-PE first runs a dedicated CCD clocking mode
to wipe out stored charges in the imaging area during the SAA passage (CCD
“erasing” mode) and then resumes the clocking for the nominal observations.
Figure 4 shows pulse heights of 5.9 keV and 6.5 keV X-ray events from the
onboard 55Fe calibration source as a function of time after SAA passages. The
initial high pulse heights are probably due to the stored charges left even
after the CCD erasing, but it was confirmed that the pulse heights become
stable after $\approx 200$ s.

Figure 4: Behavior of pulse heights of Mn-K$\alpha$ and K$\beta$ X-ray events
from the 55Fe calibration source after SAA passages. The black dots are X-ray
events. The green dashed line indicates the average pulse height of
Mn-K$\alpha$ in the stable period. The Mn-K$\alpha$ centroids at individual
time bins, calculated from the data points enclosed with the orange lines, are
shown in red.

###  2.6 Verification of dark-level calculation

To estimate pixel-dependent and time-variable dark levels, SXI-PE examines
every frame and update the stored dark levels if the pulse heights meet
certain criteria[10]. When the Xtend is looking at the day-earth rim, bright
optical lights and albedo X-rays from the Earth make a lot of signals. This
significantly affect the dark-level calculation of SXI-PE. Thus, we stop the
dark-level calculation while uninterrupting observations during these periods.

In the nominal operations of SXI, dark levels are initialized regularly
(nominally $\approx$ once a day) in order to reset incorrect dark levels
mainly caused by electronic crosstalk between two adjacent segments when a
large amount of charges is generated by a charged particle (“cosmic-ray echo”
event[18]). The negative signals as a result of the crosstalk cause an error
in the dark-level calculation, resulting in generating persistent, low energy
($\lesssim 1$ keV) events even without true X-ray inputs. In Figure 5, we show
the effect of such incorrect dark levels and their initialization. The
increasing low energy event rates, most prominent on Oct. 23, 2023, are mostly
due to an increasing number of pixels with such incorrect dark levels. Such
enhanced pseudo events should be suppressed because they put a load on the
data recorder. When the dark levels are initialized, the event rates are
evidently suppressed as expected. Note that the apparent “offset” in the event
rates in the left panel of Figure 5 is due to bad columns, which persistently
generate pseudo events.

Figure 5: Event rate of CCD3 during night-earth observations before and after
masking bad columns. The black arrows indicate time at which dark levels were
initialized.

###  2.7 Optimization of the event selection algorithm

We collected basic imaging and spectral data needed for optimization of the
event selection algorithm of all the four observation modes by Dec. 2023. Then
we scrutinized the data to decide if we have to modify event selection
parameters to optimize the imaging and spectroscopic performance of SXI. As a
conclusion, we found that most parameters were appropriate and required no
corrections. Examination of one of these parameters, the split threshold, is
like presented in Figure 6. Increasing split threshold values result in
degraded spectroscopic performance but more efficient event detection. The
original value turned out to meet the requirements of the energy resolution
and effective area. We made a minor update on the algorithm on the other hand,
masking bad columns, to suppress unimportant events (Figure 5).

Figure 6: Split-threshold dependence of spectroscopic performance, the energy
resolution (left) and good-grade event ratio (right). The red vertical lines
are the original value of the split threshold determined before the launch,
which was kept unchanged. The energy resolution in the left panel is less than
the full performance[7] because we used data before the full processing.

###  2.8 Adjustment of the 1/8-window position

Adjustment of the aim point of XRISM was done for the other instrument,
Resolve[19, 20]. This slight correction was not important for Xtend given its
large field of view in the case of the full-window and 0.1-s burst modes. On
the other hand, it was our task to adjust the small window position for the
1/8-window and 1/8-window+burst modes. Based on the peak position of the
diffuse celestial source Abel 2319, observed in Oct. 22–24, 2023, we
determined the offset between the peak and central position of the original
window region. The offset was found to be $\approx 28$ arcsec. We then
corrected the CCD clocking pattern for the 1/8-window and 1/8-window+burst
modes to shift the window position, and tested them with our ground test
system composed of EM (Engineering Model) CCDs before using them in orbit. The
corrected window position was then verified with the observations of the
point-like source NGC 4151 in Dec. 2–4, 2023 (Figure 7).

Figure 7: Point-source images obtained with the 1/8-window (left) and
1/8-window+burst (right) modes after the adjustment of the window position.
The white and green boxes indicate the window regions before and after the
adjustment, respectively.

###  2.9 Adjustment of the charge-injection rows

We officially moved to the nominal operation phase in Feb. 2024. However, we
decided to make another special operation after that. In the full-window mode,
one of the charge-injection rows overlaps the aim point (Figure 8 (a)). This
results in $\sim 10$% loss of photons for point-like sources. Weighing the
effort and risk for an additional operation and the scientific merit of it, we
decided to adjust the charge-injection rows in Mar. 2024, although this
configuration already met all the requirements.

In a similar manner to the adjustment of the window position, we first
modified the CCD clocking pattern to shift the charge-injection rows, then
tested the modified clocking mode on ground. In this case, we also had to
consider potential impact on the charge-transfer-inefficiency correction. So
we accumulated data with the ground test system to examine if this adjusted
clocking mode had any unexpected impact and if we need to perform additional
observations for calibration after performing this adjustment onboard. As a
result, we confirmed that the original charge-transfer-inefficiency correction
was still applicable to data with the adjusted clocking mode (Figure 8 (b)).
Thus the spectroscopic performance should be unchanged. Confirmation with in-
orbit observations is ongoing and will be reported by Uchida et al in prep.

Figure 8: (a) Extended-source images before and after the charge-injection-row
adjustment. The black rows without counts are the charge-injection rows. (b)
5.9 keV pulse height distribution along the readout direction before and after
correction for charge transfer inefficiency. These are from on-ground
experiments to confirm that the original charge-transfer-inefficiency
correction algorithm is applicable to the data obtained after the adjustment
of the charge injection rows.

##  3 Calibration and performance verification procedure

Here we briefly summarize our calibration procedure, which is based on the
pre-launch plan[21]. The calibration items and relevant data for SXI are
listed in Table 2. For evaluation of the effective area, we observe point-like
sources in coordination with other X-ray telescopes such as NuSTAR. For the
detector response including detector gain and energy resolution, we need line
emissions for which exact centroid energies are known. For this purpose, in
addition to the onboard 55Fe calibration sources, we use well-studied
supernova remnants and galaxy clusters. As for the quantum efficiency and
contamination, we need to focus on the low energy part, $\lesssim 1$ keV. We
also need stable sources, thus low-temperature supernova remnants are one of
the most suitable targets. We also use day-earth albedo X-rays, which are
expected to be a spatially flat emission, to examine the pixel-to-pixel
difference of the contamination. The timing accuracy can be evaluated with the
Crab pulsar, for which the pulse period is well known. Note that we use X-rays
detected during the frame transfer (out-of-time events) with the 0.1-s burst
mode and reconstruct the pulse profile of Crab, thereby we can compare the
pulse timing with other instruments (See Nakajima et al., 2018 for
details[18]). As XRISM is a low-earth-orbit satellite, plenty of day- and
night-earth observation data are available. The night-earth data represent
pure non-X-ray background. The bright and uniform optical lights during day-
earth observations can be used for evaluation of the optical blocking
performance.

We already obtained basic data sets for all the calibration and performance
verification items and data analysis is ongoing. The resultant performance
will be presented by Uchida et al. in prep.

Table 2: Calibration items and relevant data for SXI Calibration item | Data
---|---
Effective area | 3C273, G21.5$-$0.9
Detector response | 1E0102.2$-$7219, Perseus, N132D, Cygnus Loop, 55Fe calibration sources
Quantum efficiency | 1E0102.2$-$7219
Contamination | 1E0102.2$-$7219, Day-earth data
Timing accuracy | Crab
Non-X-ray background level | Night-earth data
Optical blocking performance | Day-earth data

##  4 Lessons learned

###  4.1 Need for tests with a “test as you fly” environment

When we protect the CCDs against SAA passages, we send time-set commands to
stop the CCD clocking, wait for a few seconds, and then stop the application
of the back-bias voltage. At the time we first tested the 1/8-window mode on
Nov. 1–2, 2023, commands to decrease the back-bias voltage were sometimes not
accepted because the waiting time was not enough and the clocking was still
running. We had tested these operations a lot of times on ground, but only a
few times with the “test as you fly” setup, with the same series of the
commands as the in-orbit operations. We had to interrupt observations until we
resolved the cause and take measures (Table 1). After a series of our cause
investigation, we confirmed that the time needed to stop the CCD clocking may
sometimes exceed the original wait time. Therefore, we extended the wait time
and resumed observations on Nov. 9.

###  4.2 Dark-level calculation

Keeping appropriate dark levels is quite important because wrong values lead
to a large number of pseudo events as we described in Section 2.6. Thus, in
our case, regular initialization of dark levels is essential, thereby we reset
the cosmic-ray echo effect. The high event rates seen on Oct. 23, 2023 in
Figure 5 is due to an inappropriate operation where we failed to initialize
dark levels once a day.

The other lesson we learned about dark levels is that we should be careful
about the status of the dark-level calculation when we perform special
operations. On Mar. 10, 2024, when we adjusted the charge-injection rows, we
ran the CCD erasing with the dark-level calculation enabled. This resulted in
anomalous dark levels in Mar. 10–11 (Table 1).

##  5 Summary

In this paper, we summarized the initial operation procedure of SXI, the focal
plane detector of Xtend onboard XRISM. We started our operation on Oct. 17,
2023, 40 days after the launch. The CCDs have been kept at the designed
operating temperature of $-110$∘C after the electronics and cooling system
were successfully set up. We verified the observation procedure, stability of
the cooling system, all the observation options with different imaging areas
and/or timing resolutions, and operations for protection against SAA passages.
We optimized the operation procedure and observation parameters including the
cooler settings, window position for the small window modes, and event
selection algorithm. We started observations for calibration and performance
verification, the results of which will be presented by Uchida et al. in prep.

###### Acknowledgements.

This work was supported by JSPS/MEXT KANENHI Nos. 21J00031, 22KJ3059,
24K17093, 19K21884, 20H01947, 20KK0071, 23K20239, 24K17105, 21H01095,
23K20850, 21K20372, 23K22536. This work was also supported by JSPS Core-to-
Core Program (grant number: JPJSCCA20220002).

## References

  * [1] Tashiro, M. et al., “Concept of the X-ray Astronomy Recovery Mission,” 10699, 1069922, International Society for Optics and Photonics, SPIE (2018).
  * [2] Tashiro, M. et al., “Status of x-ray imaging and spectroscopy mission (XRISM),” 11444, 1144422, International Society for Optics and Photonics, SPIE (2020).
  * [3] Tashiro, M. et al., “Development and Operation Status of X-Ray Imaging and Spectroscopy Mission (XRISM),” 13093, International Society for Optics and Photonics, SPIE (2024, in prep.).
  * [4] Ishisaki, Y. et al., “Resolve Instrument on X-ray Astronomy Recovery Mission (XARM),” Journal of Low Temperature Physics 193(5), 991–995 (2018).
  * [5] Hayashida, K. et al., “Soft x-ray imaging telescope (Xtend) onboard X-ray Astronomy Recovery Mission (XARM),” 10699, 1069923, International Society for Optics and Photonics, SPIE (2018).
  * [6] Mori, K. et al., “Xtend, the soft x-ray imaging telescope for the X-Ray Imaging and Spectroscopy Mission (XRISM),” 12181, 121811T, International Society for Optics and Photonics, SPIE (2022).
  * [7] Mori, K. et al., “Status of Xtend telescope onboard X-Ray Imaging and Spectroscopy Mission (XRISM),” 13093, International Society for Optics and Photonics, SPIE (2024, in prep.).
  * [8] Hayashi, T. et al., “In-orbit performance of the XMA for XRISM/Resolve,” 13093, International Society for Optics and Photonics, SPIE (2024, in prep.).
  * [9] Tamura, K. et al., “In-orbit performance of the Xtend-XMA onboard XRISM,” 13093, International Society for Optics and Photonics, SPIE (2024, in prep.).
  * [10] Tanaka, T. et al., “Soft X-ray Imager aboard Hitomi (ASTRO-H),” Journal of Astronomical Telescopes, Instruments, and Systems 4, 011211 (Jan. 2018).
  * [11] Nakajima, H. et al., “Soft x-ray imager (SXI) for Xtend onboard X-Ray Imaging and Spectroscopy Mission (XRISM),” 11444, 1144423, International Society for Optics and Photonics, SPIE (2020).
  * [12] Uchida, H. et al., “Optical blocking performance of CCDs developed for the X-ray Astronomy Satellite XRISM,” Nuclear Instruments and Methods in Physics Research Section A: Accelerators, Spectrometers, Detectors and Associated Equipment 978, 164374 (2020).
  * [13] Yoneyama, T. et al., “Pile-up simulator for XRISM/Xtend,” 13093, International Society for Optics and Photonics, SPIE (2024, in prep.).
  * [14] Uchiyama, H. et al., “New CTI Correction Method for Spaced-Row Charge Injection of the Suzaku X-Ray Imaging Spectrometer,” Publications of the Astronomical Society of Japan 61, S9–S15 (01 2009).
  * [15] Nobukawa, K. K. et al., “Use of a charge-injection technique to improve performance of the Soft X-ray Imager aboard ASTRO-H,” Nuclear Instruments and Methods in Physics Research Section A: Accelerators, Spectrometers, Detectors and Associated Equipment 765, 269–274 (2014).  HSTD-9 2013 - Proceedings of the 9th International “Hiroshima” Symposium on Development and Application of Semiconductor Tracking Detectors.
  * [16] Kanemaru, Y. et al., “Experimental studies on the charge transfer inefficiency of CCD developed for the soft X-ray imaging telescope Xtend aboard the XRISM satellite,” Nuclear Instruments and Methods in Physics Research Section A: Accelerators, Spectrometers, Detectors and Associated Equipment 984, 164646 (2020).
  * [17] Noda, H. et al., “New CCD Driving Technique to Suppress Anomalous Charge Intrusion from Outside the Imaging Area for Soft X-ray Imager of Xtend onboard XRISM,” 13093, International Society for Optics and Photonics, SPIE (2024, in prep.).
  * [18] Nakajima, H. et al., “In-orbit performance of the soft X-ray imaging system aboard Hitomi (ASTRO-H),” Publications of the Astronomical Society of Japan 70, 21 (Mar. 2018).
  * [19] Kanemaru, Y. et al., “Evaluation of the initial pointing accuracy of XRISM,” 13093, International Society for Optics and Photonics, SPIE (2024, in prep.).
  * [20] Maeda, Y. et al., “Initial in-orbit operation of the soft x-ray spectrometer Resolve onboard the XRISM satellite,” 13093, International Society for Optics and Photonics, SPIE (2024, in prep.).
  * [21] Miller, E. D. et al., “Planning in-flight calibration for XRISM,” 11444, 1144426, International Society for Optics and Photonics, SPIE (2020).