text:
Klipsch Home Theater Price In Kenya, Dulaney High School Teachers, True Statement About Mitochondria Is, Helicopter Pilot School Cost, Le Corbusier Roof Garden, Nina Totenberg - Wikipedia, Crazed In A Sentence, Methodist Church Permission Login, Melona Ice Cream Malaysia, How To Make Baby Fair In Tamil, " />Klipsch Home Theater Price In Kenya, Dulaney High School Teachers, True Statement About Mitochondria Is, Helicopter Pilot School Cost, Le Corbusier Roof Garden, Nina Totenberg - Wikipedia, Crazed In A Sentence, Methodist Church Permission Login, Melona Ice Cream Malaysia, How To Make Baby Fair In Tamil, " />

# inverse of orthogonal matrix

Suppose A is the square matrix with real values, of order n × n. In that example we were very careful to get the multiplications correct, because with matrices the order of multiplication matters. But why this works in the general case - when there are complex numbers inside and the dot product is something else? Animated TV show about a vampire with extra long teeth. Set the matrix (must be square) and append the identity matrix of the same dimension to it. Source: en.wikipedia.org A square matrix with real numbers or values is termed as an orthogonal matrix if its transpose is equal to the inverse matrix of it. which is the inverse of $O$: the inverse is $\mathbf{A}^{-1} =\begin{pmatrix} \cos \theta&\sin \theta \\ -\sin \theta&\cos \theta \end{pmatrix} =\mathbf{A}^T \nonumber$ We do not need to calculate the inverse to see if the matrix is orthogonal. There needs to be something to set them apart.). An interesting property of an orthogonal matrix P is that det P = ± 1. We've already seen that the transpose of this matrix is the same thing as the inverse of this matrix. 2) show that $AA^*$ is $I$? The Matrix Is Not Orthogonal. A.12 Generalized Inverse Deﬁnition A.62 Let A be an m × n-matrix. The transpose of this matrix is equal to the inverse. As an example, rotation matrices are orthogonal. $\Omega^T = -\Omega$. Computing an inverse is usually hard but not for the orthogonal matrix. … More specifically, when its column vectors have the length of one, and are pairwise orthogonal; likewise for the row vectors. It looks so neat! By using this website, you agree to our Cookie Policy. An orthogonal matrix is a square matrix whose columns and rows are orthogonal unit vectors. (I posted an answer and deleted it after I reread the question.) If matrix Q has n rows then it is an orthogonal matrix (as vectors q1, q2, q3, …, qn are assumed to be orthonormal earlier) Properties of Orthogonal Matrix. C (A)is true but (R} is false, D It is a compact Lie group of dimension n(n − 1) / 2, called the orthogonal group and denoted by O(n). Viewed 510 times 1 $\begingroup$ In the following statement I don't understand the case for $\ i = j$: Let $\mathbf A$ be an $\ m \times \ n$ orthogonal matrix where $\ a_i$ is the $\ i^{th}$ column vector. Orthonormal (orthogonal) matrices are matrices in which the columns vectors form an orthonormal set (each column vector has length one and is orthogonal to all the other colum vectors). A real square matrix is orthogonal if and only if its columns form an orthonormal basis of the Euclidean space ℝ with the ordinary Euclidean dot product, which is the case if and only if its rows form an orthonormal basis of ℝ . AB is almost never equal to BA. It can be done that way, but we must be careful how we set it up. Ask Question Asked 3 years, 10 months ago. By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy. Free matrix inverse calculator - calculate matrix inverse step-by-step This website uses cookies to ensure you get the best experience. First, let us set up the matrices (be careful to get the rows and columns correct! It only takes a minute to sign up. Show transcribed image text. We can summarize this discussion as follows: Theorem 1.1 The left inverse of an orthogonal m nmatrix V with m nexists and is equal to the transpose of V: VTV = I: In particular, if m= n, the matrix V 1 = VT is also the right inverse of … Thus, once we know B is an orthogonal matrix, then the inverse matrix B − 1 is just the transpose matrix BT. To subscribe to this RSS feed, copy and paste this URL into your RSS reader. The calculations are done by computer, but the people must understand the formulas. Do not assume that AB = BA, it is almost never true. site design / logo © 2020 Stack Exchange Inc; user contributions licensed under cc by-sa. The inverse of every orthogonal matrix is again orthogonal, as is the matrix product of two orthogonal matrices. A square matrix with real numbers or elements is said to be an orthogonal matrix, if its transpose is equal to its inverse matrix or we can say, when the product of a square matrix and its transpose gives an identity matrix, then the square matrix is known as an orthogonal matrix. Inverse of a permutation matrix. Using the same method, but put A-1 in front: Why don't we try our bus and train example, but with the data set up that way around. Are fair elections the only possible incentive for governments to work in the interest of their people (for example, in the case of China)? In fact, the set of all n × n orthogonal matrices satisfies all the axioms of a group. Orthogonal Matrices: Only square matrices may be orthogonal matrices, although not all square matrices are orthogonal matrices. and we have Find out exact time when the Ubuntu machine was rebooted. If matrix A can be eigendecomposed, and if none of its eigenvalues are zero, then A is invertible and its inverse is given by − = − −, where is the square (N×N) matrix whose i-th column is the eigenvector of , and is the diagonal matrix whose diagonal elements are the corresponding eigenvalues, that is, =.If is symmetric, is guaranteed to be an orthogonal matrix, therefore − =. The matrix is orthogonal. Why multiply a matrix with its transpose? The matrix is invertible because it is full-rank (see above). Remember it must be true that: A × A-1 = I. Now transpose it to get: is a rotation matrix, as is the matrix of any even permutation, and rotates through 120° about the axis x = y = z. @qiubit : Once you realize that the $i,j$ element of the matrix $A'A$ is the inner product of columns $i$ and $j$ of $A$, you should realize that $A' A=I$ is an equivalent definition of an orthogonal matrix. @qiubit, Sorry but my definition of orthogonal matrix is different. Properties of singular and non-singular matrix If it is orthogonal, then find the inverse. [Ω,−Ω]−=0 we can write In other words, the product of a square orthogonal matrix and its transpose will always give an identity matrix. It is "square" (has same number of rows as columns). If A is invertible, then the factorization is unique if we require the diagonal elements of R to be positive. Transposed (rows and columns swapped over). Setting the extents or bounds of "map view" of OpenLayers does not open the webpage at given Zoom Level. $$O^T=\exp(\Omega)^T=\exp(\Omega^T)=\exp(-\Omega),$$ The 3 × 3 matrix = [− − −] has determinant +1, but is not orthogonal (its transpose is not its inverse), so it is not a rotation matrix. This is one key reason why orthogonal matrices are so handy. OT=exp(Ω)T=exp(ΩT)=exp(−Ω), See if you also get the Identity Matrix: Because with matrices we don't divide! Let us try an example: How do we know this is the right answer? We can remove I (for the same reason we can remove "1" from 1x = ab for numbers): And we have our answer (assuming we can calculate A-1). ("Transposed") That is, an orthogonal matrix is an invertible matrix, let us call it Q, for which: This leads to the equivalent characterization: a matrix Q is orthogonal if its transpose is equal to its inverse: To learn more, see our tips on writing great answers. Here we give an alternative way to find the inverse matrix by noting that A is an orthogonal matrix. How about this: 24-24? We can transpose the matrix, multiply the result by the matrix, and see if we get the identity matrix as a result: So how do we solve this one? Does an orthogonal transformation always have an orthogonal matrix? Represent your orthogonal matrix $O$ as element of the Lie Group of Orthogonal Matrices. Show Instructions. Is starting a sentence with "Let" acceptable in mathematics/computer science/engineering papers? An orthogonal matrix … The inverse of a 2x2 is easy ... compared to larger matrices (such as a 3x3, 4x4, etc). The Inverse of a Matrix is the same idea but we write it A-1, Why not 1/A ? But we can take the reciprocal of 2 (which is 0.5), so we answer: The same thing can be done with matrices: Say we want to find matrix X, and we know matrix A and B: It would be nice to divide both sides by A (to get X=B/A), but remember we can't divide. How do I know if my subfloor is fire retardant or preservative-treated? Say that we are trying to find "X" in this case: This is different to the example above! That says that A' is the inverse of A! I think I prefer it like this. compared to the previous example. Let $C_i$ the $i^{\text{th}}$ column of the orthogonal matrix $O$ then we have, $$\langle C_i,C_j\rangle=\delta_{ij}$$ The exponential map isn't surjective onto the full orthogonal group. (Simplify Your Answer.) As a result you will get the inverse calculated on the right. Reduce the left matrix to row echelon form using elementary row operations for the whole matrix (including the right one). Now transpose it to get: B. Therefore, if we can factorize a matrix into orthogonal matrices, that will be great news. In general, you can skip the multiplication sign, so 5x is equivalent to 5*x. For a symmetric matrix, we can guarantee to decompose it into QΛQᵀ where Q is an orthogonal matrix and Λ is a diagonal matrix. We cannot go any further! X is now after A. It is also a way to solve Systems of Linear Equations. Stronger than the determinant restriction is the fact that an orthogonal matrix can always be diagonalized over the complex numbers to exhibit a full set of eigenvalues, all of which must have (complex) modulus 1. In general, you can skip parentheses, but be very careful: e^3x is e^3x, and e^(3x) is e^(3x). Asking for help, clarification, or responding to other answers. What would happen if a 10-kg cube of iron, at a temperature close to 0 kelvin, suddenly appeared in your living room? So matrices are powerful things, but they do need to be set up correctly! Allow bash script to be run as root, but not sudo. The Matrix Is Orthogonal. It might be tempting to suppose a matrix with orthogonal (not orthonormal) columns would be called an orthogonal matrix, but such matrices have no special interest and no special name; they only satisfy M M = D, with D a diagonal matrix. A. The inverse of an orthogonal matrix is its transpose. First of all, to have an inverse the matrix must be "square" (same number of rows and columns). What happens when writing gigabytes of data to a pipe? Seriously, there is no concept of dividing by a matrix. The inverse is ОА. Isn't that true ONLY if the dot product is defined as $x^Ty$? How should I save for a down payment on a house while also maxing out my retirement savings? Theorem A.63 A generalized inverse always exists although it is not unique in general. The 4 × 3 matrix Things to check for with a orthogonal matrix or vector. The calculator will find the inverse of the square matrix using the Gaussian elimination method, with steps shown. Looking for the title of a very old sci-fi short story where a human deters an alien invasion by answering questions truthfully, but cleverly. If Section 230 is repealed, are aggregators merely forced into a role of distributors rather than indemnified publishers? In other words: swap the positions of a and d, put negatives in front of b and c, and divide everything by the determinant (ad-bc). Then a matrix A−: n × m is said to be a generalized inverse of A if AA−A = A holds (see Rao (1973a, p. 24). With the field of complex numbers, the matrix which you ask about is called unitary matrix not orthogonal matrix and the proof is generally the same. Thanks for contributing an answer to Mathematics Stack Exchange! Inverse of an orthogonal matrix is orthogonal. I asked why is the statement valid in the general case, for example if there are complex numbers inside the matrix the dot product can be defined as $x^Hy$ and then it is not equal $x^Ty$. Trick to find Inverse of (A.A^T) of Orthogonal Matrix GATE question. (Type exact answers, using radicals as needed.) Why it is more dangerous to touch a high voltage line wire where current is actually less than households? For those larger matrices there are three main methods to work out the inverse: Inverse of a Matrix using Elementary Row Operations (Gauss-Jordan), Inverse of a Matrix using Minors, Cofactors and Adjugate. See the answer. Alternatively, a matrix is orthogonal if and only if its columns are orthonormal, meaning they are orthogonal and of unit length. Since $\Omega$ and $-\Omega$ commute, i.e. An orthogonal matrix satisfied the equation AAt = I Thus, the inverse of an orthogonal matrix is simply the transpose of that matrix. Orthogonal matrices are the most beautiful of all matrices. (a)–(c) follow from the deﬁnition of an idempotent matrix. In mathematics, and in particular linear algebra, the Moore–Penrose inverse + of a matrix is the most widely known generalization of the inverse matrix. If you have a matrix like this-- and I actually forgot to tell you the name of this-- this is called an orthogonal matrix. This video lecture will help students to understand following concepts:1. OB. For square orthonormal matrices, the inverse is simply the transpose, Q-1 = Q T. This Matrix has no Inverse. And the determinant lets us know this fact. Please read our Introduction to Matrices first. Usefulness of Why Eigenvectors Corresponding to Distinct Eigenvalues of Symmetric Matrix are Orthogonal. So, let us check to see what happens when we multiply the matrix by its inverse: And, hey!, we end up with the Identity Matrix! Why don't you have a go at multiplying these? Such a matrix is called "Singular", which only happens when the determinant is zero. Proposition Let be a permutation matrix. $$O^T=(C_1\;\cdots\; C_n)^T=(C_1^T\;\cdots\; C_n^T)$$ Earlier, Erik Ivar Fredholm had introduced the concept of a pseudoinverse of integral operators in 1903. 2x2 Matrix. If a determinant of the main matrix is zero, inverse doesn't exist. Alternatively, a matrix is orthogonal if and only if its columns are orthonormal, meaning they are orthogonal and of unit length. This leads to the following characterization that a matrix … Why is inverse of orthogonal matrix is its transpose? OK, how do we calculate the inverse? Making statements based on opinion; back them up with references or personal experience. An interesting property of an orthogonal matrix P is that det P = ± 1. Tricks in Mathematics for competitive exams. It is like the inverse we got before, but Matrices of eigenvectors (Note OP included "when the dot product is something else."). Recall that a matrix B is orthogonal if BTB = BTB = I. A matrix P is orthogonal if P T P = I, or the inverse of P is its transpose. They took the train back at $3.50 per child and$3.60 per adult for a total of $135.20. which is the inverse of O: Since Ω and −Ω commute, i.e. Doesn't this proof assume that the dot product is$x^Ty$? orthonormal with respect to which inner product? Cases and definitions Square matrix. so we get, $$O^TO=(\langle C_i,C_j\rangle)_{1\le i,j\le n}=I_n$$. Reason The inverse of an identity matrix is the matrix itself. So it must be right. (Imagine in our bus and train example that the prices on the train were all exactly 50% higher than the bus: so now we can't figure out any differences between adults and children. Calculations like that (but using much larger matrices) help Engineers design buildings, are used in video games and computer animations to make things look 3-dimensional, and many other places. But also the determinant cannot be zero (or we end up dividing by zero). Any real square matrix A may be decomposed as =, where Q is an orthogonal matrix (its columns are orthogonal unit vectors meaning = =) and R is an upper triangular matrix (also called right triangular matrix, hence the name). Orthogonal matrix with properties and examples.2. What has been the accepted value for the Avogadro constant in the "CRC Handbook of Chemistry and Physics" over the years? Could a dyson sphere survive a supernova? Mathematics Stack Exchange is a question and answer site for people studying math at any level and professionals in related fields. When we multiply a matrix by its inverse we get the Identity Matrix (which is like "1" for matrices): We just mentioned the "Identity Matrix". Active 3 years, 10 months ago. OTO=exp(−Ω)exp(Ω)=exp(−Ω+Ω)=exp(0)+ 0+1 -1 transpose 1+0 +Y -X +0=1. A is othogonal means A'A = I. The claim$\langle C_i, C_j \rangle = \delta_{ij}$for an orthogonal matrix is in general not true. Well, for a 2x2 matrix the inverse is: In other words: swap the positions of a and d, put negatives in front of b and c, and divide everything by the determinant (ad-bc). Am I right? Use MathJax to format equations. I agree. Proof. Previous question Next question Transcribed Image Text from this Question. But what if we multiply both sides by A-1 ? The Inverse Is A. where$\exp$means the matrix exponential and$\Omega$is an element of the corresponding Lie Algebra, which is skew-symmetric, i.e. That equals 0, and 1/0 is undefined. ... and someone asks "How do I share 10 apples with 2 people?".$[\Omega,-\Omega]_-=0$we can write $$O^TO=\exp(-\Omega)\exp(\Omega)=\exp(-\Omega+\Omega)=\exp(0)=1$$, ΩT=−Ω. So the question is in the title. The inverse of every orthogonal matrix is again orthogonal, as is the matrix product of two orthogonal matrices. You get: $$O = \exp(\Omega),$$ Orthogonal matrices are very important in factor analysis. a square orthogonal matrix are orthonormal as well. So, if you calculate$AA^*$, can you 1) View each entry in the product as an inner product of a row/column? It was independently described by E. H. Moore in 1920, Arne Bjerhammar in 1951, and Roger Penrose in 1955. And it makes sense ... look at the numbers: the second row is just double the first row, and does not add any new information. rev 2020.12.18.38240, The best answers are voted up and rise to the top, Mathematics Stack Exchange works best with JavaScript enabled, Start here for a quick overview of the site, Detailed answers to any questions you might have, Discuss the workings and policies of this site, Learn more about Stack Overflow the company, Learn more about hiring developers or posting ads with us, A square matrix with orthonormal basis of$\Bbb{R}^n$or$\Bbb{C}^n$inside. A matrix P is orthogonal if P T P = I, or the inverse of P is its transpose. But we can multiply by an inverse, which achieves the same thing. Both (A) & (R) are individually true & (R) is correct explanation of (A), B. But it is based on good mathematics. Because we don't divide by a matrix! Group properties. MathJax reference. Which makes it super, duper, duper useful to deal with. Also note how the rows and columns are swapped over It's easy to prove when we know that there are real numbers in it and the dot product is standard. And anyway 1/8 can also be written 8-1, When we multiply a number by its reciprocal we get 1. By using our site, you acknowledge that you have read and understand our Cookie Policy, Privacy Policy, and our Terms of Service. Is that not feasible at my income level? Can the plane be covered by open disjoint one dimensional intervals? Is it wise to keep some savings in a cash account to protect against a long term market crash? Both (A) & (R) are individually true but (R) is not the correct (proper) explanation of (A). Then, is invertible and. Stack Exchange network consists of 176 Q&A communities including Stack Overflow, the largest, most trusted online community for developers to learn, share their knowledge, and build their careers. In my humble opinion this is not general enough for OPs question. Expert Answer . If matrix A is orthogonal, show that transpose of A is equal to the inverse of A, Why is the determinant of the following matrix zero, Show$A$is “real-equivalent” to its transpose. The matrix is not orthogonal By the way for complex number $$A^{-1}=A^*.$$. Is the Gloom Stalker's Umbral Sight cancelled out by Devil's Sight? Like a diagonal matrix, its inverse is very easy to compute — the inverse of an orthogonal matrix is its transpose. 73 2 2 1 2 V3 2 Select the correct answer below and fill in any answer boxes within your choice. This problem has been solved! ): So to solve it we need the inverse of "A": Now we have the inverse we can solve using: The answer almost appears like magic. Determine if the matrix is orthogonal.$\begingroup$With the field of complex numbers, the matrix which you ask about is called unitary matrix not orthogonal matrix and the proof is generally the same. A permutation matrix is an orthogonal matrix, that is, its transpose is equal to its inverse. A group took a trip on a bus, at$3 per child and $3.20 per adult for a total of$118.40. Determine if the matrix is orthogonal. With matrices the order of multiplication usually changes the answer. Retirement savings what if we can factorize a matrix the  CRC Handbook of Chemistry and Physics '' the. A long term market crash contributions licensed under cc by-sa the full group... And deleted it after I reread the question. ) script to be set up correctly starting a sentence . Hard but not for the orthogonal matrix P is its transpose of two orthogonal are... ) of orthogonal matrix is the Gloom Stalker 's Umbral Sight cancelled out by Devil 's Sight you get... In general not true inverse, which only happens when the dot is. N'T surjective onto the full orthogonal group line wire where current is actually less than?.  5 * x  Chemistry and Physics '' over the years case: this is not the., etc ) larger matrices ( such as a result you will get best. The right answer as columns ) the webpage at given Zoom level share 10 apples with 2?! Is repealed, are aggregators merely forced into a role of distributors rather than inverse of orthogonal matrix publishers the group.  map view '' of OpenLayers does not open the webpage at inverse of orthogonal matrix level! Written 8-1, when we multiply both sides by A-1 orthogonal the inverse of this matrix is again,... Key inverse of orthogonal matrix why orthogonal matrices Exchange Inc ; user contributions licensed under cc by-sa the! Be careful how we set it up AB = BA, it is orthogonal if BTB = =... We require the diagonal elements of R to be something to set inverse of orthogonal matrix! All the axioms of a question Next question Transcribed Image Text from this question..... Be  square '' ( same number of rows as columns ) how do we know this is the is! To ensure you get the identity matrix } =A^ *.  answer and deleted it I!, its transpose while also maxing out my retirement savings represent your orthogonal matrix is the matrix.... Aggregators merely forced into a role of distributors rather than indemnified publishers meaning they are orthogonal and of length!  this website uses cookies to ensure you get the identity matrix: with... And deleted it after I reread the question. ) and Cookie policy easy! 4X4, etc ) exact time when the inverse of orthogonal matrix is zero or personal experience script be. There are complex numbers inside and the dot product is something else first of all matrices like the...., Arne Bjerhammar in 1951, and are pairwise orthogonal ; likewise for the whole matrix ( must true. For people studying math at any level and professionals in related fields *.  this..: because with matrices the order of multiplication matters high voltage line wire current... Of OpenLayers does not open the webpage at given Zoom level a pipe professionals in related fields something! X^Ty $math at any level and professionals in related fields fire retardant or?. Website uses cookies to ensure you get the inverse of this matrix the Lie group of orthogonal.. Gate question. ) we 've already seen that the dot product is$ I $extents bounds. Savings in a cash account to protect against a long term market crash payment on a house while also out! Matrix is again orthogonal, as is the matrix is called  ''. In a cash account to protect against a long term market crash method with. Every orthogonal matrix Arne Bjerhammar in 1951, and are pairwise orthogonal ; likewise for the Avogadro constant the! Orthogonal transformation inverse of orthogonal matrix have an orthogonal transformation always have an inverse, which only happens when the Ubuntu machine rebooted! Any answer boxes within your choice of service, privacy policy and Cookie policy, suddenly appeared in your room... N'T surjective onto the full orthogonal group x  specifically, when we know that there are real in!, B \rangle = \delta_ { ij }$ for an orthogonal transformation always an.: this is one key reason why orthogonal matrices on the right?. Always give an identity matrix we multiply a number by its reciprocal we get.! They do need to be positive and append the identity matrix is zero on the right )! Script to be positive in your living room following concepts:1 radicals as needed. ) in 1920 Arne... 'S Sight, C_j \rangle = \delta_ { ij } $for an matrix. N'T you have a go at multiplying these I posted an answer to mathematics Stack Exchange Inc ; user licensed! Individually true & ( R ) is correct explanation of ( A.A^T ) orthogonal. And answer site for people studying math at any level and professionals in related fields  5 * ! Role of distributors rather than indemnified publishers what has been the accepted for! ) are individually true & ( R ) is correct explanation of a... That way, but we must be true that: a × A-1 I... Inverse of a pseudoinverse of integral operators in 1903 columns are orthonormal, meaning are! There is no concept of dividing by zero ) is an orthogonal matrix GATE.! Based on opinion ; back them up with references or personal experience if P T P = 1... Numbers in it and the dot product is defined as$ x^Ty $our Cookie.! In related fields as columns ) at any level and professionals in related fields terms of,... Right one ) to Distinct Eigenvalues of Symmetric matrix are orthogonal and of unit length of Chemistry Physics... At a temperature close to 0 kelvin, suddenly appeared in your living room Ubuntu machine was.... Website, you can skip the multiplication sign, so  5x  is equivalent to  5 * ! Are real numbers in it and the dot product is something else a cash to... 'S easy to prove when we know that there are complex numbers inside and the dot is! In general, you can skip the multiplication sign, so  5x  equivalent. On a house while also maxing out my retirement savings by open one. This works in the general case - when there are complex numbers inside and dot... Extents or bounds of  map view '' of OpenLayers does not open the webpage given..., but Transposed ( rows and columns correct interesting property of an matrix... Square orthogonal matrix, that will be great news do need to be positive free matrix inverse of orthogonal... They do need to be set up the matrices ( such as 3x3! Get 1 question and answer site for people studying math at any and... An m × n-matrix 2 ) show that$ AA^ * $is x^Ty... On writing great answers if BTB = BTB = BTB = BTB = I of orthogonal matrices are most... Why this works in the general case - when there are real numbers in it and the product., or responding to other answers statements based on opinion ; back them up with references or experience! Is simply the transpose of this matrix is its transpose by its reciprocal we get 1 be something to them! Your choice GATE question. ) matrix satisfied the equation AAt = I, or inverse! Called  Singular '', which achieves the same thing$ is $x^Ty$ how should I save a... Our terms of service, privacy policy and Cookie policy '' over the years sign, so 5x... Must be careful how we set it up the rows and columns orthonormal! ) & ( R ) is correct explanation of ( A.A^T ) of orthogonal matrices are the beautiful... Seen that the dot product is something else out exact time when the dot product is else! Because it is like the inverse of the main matrix is invertible because it is almost never true compared... \Delta_ { ij } $for an orthogonal matrix is in general not true '' ) compared larger. The right one ) is like the inverse of the Lie group of orthogonal matrices, that will be news... Under cc by-sa vampire with extra long teeth operators in 1903 inverse B... Calculated on the right one ) swapped over (  Transposed '' ) to. Know B is orthogonal if P T P = ± 1 if and only if its are. Has same number of rows and columns ) proof assume that the transpose matrix.. What happens when the determinant can not be zero ( or we end dividing... Up dividing by a matrix B − 1 is just the transpose of that matrix our terms of service privacy. Be set up correctly alternatively, a matrix is equal to its inverse can skip the multiplication,... The train back at$ 3.50 per child and $3.60 per adult for a of! Script to be something to set them apart. ) n't you a! Clicking “ Post your answer ”, you agree to our Cookie policy great.. Or the inverse of every orthogonal matrix is the matrix is not orthogonal inverse! Result you will get the best experience, to have an orthogonal matrix is! You agree to our terms of service, privacy policy and Cookie policy usually changes answer. We were very careful to get the identity matrix: because with matrices the order of multiplication.! The exponential map is n't surjective onto the full orthogonal group like inverse! Than households does not open the webpage at given Zoom level also the determinant is zero$ 3.60 adult! Of ` map view '' of OpenLayers does not open the webpage given...


text:
Open access peer-reviewed chapter

# Characterizing Power and Energy Efficiency of Legion Data-Centric Runtime and Applications on Heterogeneous High-Performance Computing Systems

By Song Huang, Song Fu, Scott Pakin and Michael Lang

Submitted: February 8th 2018Reviewed: August 24th 2018Published: December 10th 2018

DOI: 10.5772/intechopen.81124

## Abstract

The traditional parallel programming models require programmers to explicitly specify parallelism and data movement of the underlying parallel mechanisms. Different from the traditional computation-centric programming, Legion provides a data-centric programming model for extracting parallelism and data movement. In this chapter, we aim to characterize the power and energy consumption of running HPC applications on Legion. We run benchmark applications on compute nodes equipped with both CPU and GPU, and measure the execution time, power consumption and CPU/GPU utilization. Additionally, we test the message passing interface (MPI) version of these applications and compare the performance and power consumption of high-performance computing (HPC) applications using the computation-centric and data-centric programming models. Experimental results indicate Legion applications outperforms MPI applications on both performance and energy efficiency, i.e., Legion applications can be 9.17 times as fast as MPI applications and use only 9.2% energy. Legion effectively explores the heterogeneous architecture and runs applications tasks on GPU. As far as we know, this is the first study to understand the power and energy consumption of Legion programming and runtime infrastructure. Our findings will enable HPC system designers and operators to develop and tune the performance of data-centric HPC applications with constraints on power and energy consumption.

### Keywords

• power consumption
• Legion programming model
• legion runtime
• high performance computing
• energy efficiency

## 1. Introduction

The U.S. Department of Energy (DOE) announced to invest $258 million to the exascale computing project in 2017. With funding from the six selected companies, the total investment reaches over$430 million to achieve the goal of delivering at least one exascale-capable supercomputer by 2021 [1]. Building an exascale high performance computing (HPC) system has to overcome four major challenges: parallelism, memory and storage, reliability, and energy consumption. An exascale system, if built using the existing technologies, will consume half of a gigawatt of power, which highly exceeds the expected power limit specified by DOE. Therefore, innovative technologies are needed to enhance the power and energy efficiency and improve the system performance with a low power consumption.

Compute nodes are a major power and energy consumer inside an HPC system. Deng et al. [2] found that about 60% of system power is consumed by CPU, around 30% of power is allocated to memory, and other components account for 10%. This situation becomes more obvious in HPC environments where compute intensive and data intensive computation keeps a system always busy. Hence, reducing power and energy consumption of computing units and memory is the major challenge for efficiency of the whole system.

The message passing interface (MPI) is the de facto standard for writing HPC applications. It is a computation-centric programming model, where MPI processes are independent execution units that contain instructions and state information, use their address spaces, and interact with each other via inter-process communication mechanisms defined by MPI. Application programmers focus on writing computation processes and dealing with their communication, while data-related components, including data layout, data placement, and data movement, are implicitly determined by computation. As the volume, variety, and velocity of data dramatically increase, computation-centric programming becomes inefficient. Data-centric programming is increasingly addressing these problems, because focusing on the data makes the big-data problems much simpler to express. It enables programmers to define data properties including organization, partitioning, privileges, and coherence, also allows runtime systems to control data movement, communication, task scheduling, and execution.

Legion, which is jointly developed by Stanford University, Los Alamos National laboratory, and Nvidia, is a data-centric parallel programming system for writing portable high performance programs targeted at heterogeneous architectures [3, 4]. Legion provides abstractions which allow programmers to describe properties of program data, such as independence and locality [3]. By making the Legion programming system aware of the structure of program data, it can automate many of the tedious tasks programmers currently face, including correctly extracting task- and data-level parallelism and moving data around complex memory hierarchies.

Existing works mainly focus on improving the performance of Legion applications. Little is known about the energy efficiency of the Legion system and many questions have not been answered, such as:

• Unlike the traditional HPC programming systems, what are the distinct characteristics of power and energy consumption of Legion runtime and applications?

• Can Legion applications achieve better power and energy efficiency, at the same time as accelerate the execution and increase the throughput?

• How well do Legion runtime and applications utilize computing and memory resources on both homogeneous and heterogeneous systems?

In this chapter, we study these critical questions and analyze the energy efficiency of Legion applications and runtime system. We test a number of benchmark applications with varying configurations on a CPU-GPU heterogeneous platform. We run both the MPI version and the Legion version applications. The heterogeneous system offers pure CPU and CPU-GPU execution environments. We use a variety of power profiling tools such as PAPI [5], RAPL [6], PowerAPI [7], and NVML [8] to measure runtime power consumption and characterize power consumption, energy consumption, and resource utilization of applications run on Legion. Important contributions include: (1) Legion Helper affects the performance and power consumption of applications; (2) Legion-based GPU applications perform better with regards to energy efficiency and execution time for larger problem size.

As far as we know, this is the first investigation of the performance and energy properties of Legion applications and data-centric Legion runtime system. The findings and results produced from this work will improve our understanding of Legion and develop resource scheduling to maximize system performance while operating under static/dynamic power caps.

The remainder of this chapter is structured as follows. Section 2 briefly presents the data-centric programming model and Legion runtime. The test environment (hardware, benchmarks, and profiling tools) is described in Section 3. Section 4 presents the results on performance and energy efficiency on servers with only CPU. The results on heterogeneous servers with both CPU and GPU are presented in Section 5. Key findings are highlighted in Section 6. Section 7 describes and related research and Section 8 provides the conclusion.

## 2. Legion programming and runtime system

Legion [3, 4] is a data-centric programming model and it provides runtime system to reduce expensive data movement in the complex memory hierarchy and to write highly portable and data intensive programs for heterogeneous system. Legion Runtime extracts independent tasks and allocates them to available computer resources to speed up parallel execution.

Compared to current computation-centric programming models, such as MPI and OpenMP, which require that programmers to explicitly specify the communication between compute nodes and data transfer for underlying parallel mechanisms, Legion focus more on defining data properties and the relationship between different data units [3]. Application developers can explicitly declare the properties of program data, including data organization, independence, partition, and locality. Therefore, Legion hides the operations of extracting parallelism and data movement and provides auto mapping to avoid suffering data moving overhead. Also, Legion allows programmers to customize optimal mapping for specific applications or infrastructure.

A dynamic scheduling approach called SOOP (“out-of-order” processor) is provided by the Legion runtime to map the dependences of tasks, distribute the tasks onto processor, map to physical instance for execution [4]. SOOP determines the task dependency at the logical region level by comparing the privileges and coherence modes to detect dependency between a newly registered task and a previous registered task. After the task dependency is satisfied, the task will be mapped and placed into the mapping queue, and scheduled to processors. Then task execution is performed and resources are recovered after execution. This whole process is automatic and hidden from Legion users. In our next discussion, we use the Legion Helper to refer to the set of processes that detect the dependency, map and dispatch of Legion tasks.

## 3. Evaluation environment

Before showing the experiment and discussing the results, we detail the platforms in our experimental environment in this section, provide the specifications of the homogeneous servers and heterogeneous servers, and describe the benchmark applications and profiling tools.

### 3.1 Hardware configurations

In the experiments, we use a homogeneous HPC server that consists of Enterprise version of Haswell processor, and a heterogeneous HPC server that has both CPU processor and a GPU accelerator. They will be referred to as the CPU server or GPU server in the following discussion.

#### 3.1.1 CPU server

The CPU server is a Dell PowerEdge T630 computer that has two sockets with Intel Xeon E5-2683 v3 processors, 128 GB RAM and 28 TB SSD. Table 1 contains the specification.

 Compute server Dell PowerEdge T630 CPU Processor 2xIntel Xeon E5-2683 v3 (Haswell-EP) Number of cores per socket 14 Number of threads per socket 28 28 Base frequency 2 GHz Turbo frequency 3 GHz Thermal design power per Socket 120 W

### Table 1.

Configuration of the CPU server.

#### 3.1.2 GPU server

To understand the power and energy characteristics of Legion on a heterogeneous environment, we run applications on a HP server having both Intel Xeon processor and NVIDIA Tesla K40c GPU accelerator, and another HP server with the same CPU processor and NVIDIA Tesla P100 GPU accelerator. Table 2 shows their specifications.

 Compute server HP ProLiant heterogeneous server GPU processor NVIDIA Tesla K40c Number of CUDA cores 2880 DRAM 12 GB Thermal design power per Socket 235w GPU processor NVIDIA Tesla P100 Number of CUDA cores 3584 DRAM 12 GB Thermal design power per Socket 250w CPU processor Intel(R) Xeon(R) CPU X3460 Number of cores per socket 4 Number of threads per socket 8 Base frequency 2.8 GHz Turbo frequency 3.46 GHz Thermal design power per Socket 95 W

### Table 2.

Configuration of the GPU server.

### 3.2 Benchmark applications

To demonstrate the characteristics of the power and energy consumption of Legion runtime and application, we select two benchmark applications, which are compute-intensive, to run on both servers using Legion and MPI programming models.

#### 3.2.1 MiniAero

MiniAero is a fluid dynamics mini-application [9, 10] designed to evaluate the programming model and hardware. It is an explicit unstructured finite volume code, which use Runge-Kutta four-order method to solve the compressible Navier-Stokes equations. It has the usual calculation and communication patterns on 3D unstructured mesh [11]. These meshes are generated on the CPU and then move to the devices (e.g. the CPU itself, GPU accelerator, or Xeon Phi). The original version of MiniAero uses multi-dimensional Kokkos arrays to store connectivity and flow data. Because MiniAero has a small dependency on tasks, the Legion version of MiniAero extracts concurrency from program data and maps it to physical regions to speed up the execution.

#### 3.2.2 Circuit

Circuit [3] is a sample application that simulates on any graph of integrated circuit components and wires [10]. An explicit iterative solver step through time and calculates the updated voltages and currents on each node and wire. It computes the current by examining the voltage differential across every wire, updates the charge for each node with new current, and then re-calculate the voltage for every node according to the charge. The Legion runtime controls the resource allocation, performs task scheduling, and moves program data. These operations decompose independent data and allocate it to different computational units for scalability.

### 3.3 Profiling tools and performance metrics

#### 3.3.1 PAPI

The Performance API (PAPI) [5] provides a set of standard APIs to access the hardware performance counter to capture real-time statistics from multiple hardware devices. The counter exist as a small set of registers, which record the occurrence of signals and events, for instance, Machine Specific Register (MSR). PAPI provides portability across different platforms via the ability to accept platform specific counter numbers. This enables the users to access a variety of devices for these counters and enable performance monitoring and tuning of these components.

#### 3.3.2 RAPL

The Running Average Power Limit (RAPL) [6], introduced by Intel Xeon processors, which use a software power model to estimate the power and energy consumption of hardware. It can be used for monitoring of heat and energy and coverage of multiple domains such as PKG (Package Power), PP0 (Core), PP1 (uncore) and DRAM. The Haswell EP processor used in our experiments does not support PP0 and PP1 domains. Meanwhile, the RAPL counters can help to tune the performance of processors and balance the computing workloads on the nodes. In our experiments, we use the RAPL module in PAPI to profile the power consumption of the processor in the packet and DRAM domains.

#### 3.3.3 PowerAPI

PowerAPI [7] provides a library for measuring power consumption at the process level. PowerAPI is a pure software approach to estimate power consumption of various hardware devices based on energy analytical models. Additional, the library is actor-based framework that the users can choose modules to fit for their requirements, which enables lowering computational cost and high accuracy. Moreover, PowerAPI can provide performance statistics of a particular process.

#### 3.3.4 NVML

The NVIDIA Management Library (NVML) [8] monitors and manages NVIDIA GPU devices. It provides interfaces for querying and controlling device states, handling events, and reporting errors. Real-time query-able statistics such as ECC error counting, active processes and utilization, temperature and energy consumption can be captured via these interfaces. Also, some modifiable state can be accessed (e.g. ECC mode, compute mode, Persistence mode). In our K40c GPU and P100 GPU, we record the real-time board power draw by querying the performance counters.

## 4. Legion power and energy consumption on CPU server

To better understand the power and energy consumption patterns of Legion applications, we compare the performance of processors and power consumption of both MPI versions and Legion versions of MiniAero and the circuit with different problem sizes on different CPU cores.

To reduce noise and measurement errors, we perform each experiment 10 times and calculate the average of the measurements, and each run has the same initial conditions. The two applications are computationally intensive. Package and DRAM are the most important consumers of energy. To better characterize Legion applications and runtime, we separately measure and analyze the power and power consumption of Legion helper and computational processes.

### 4.1 Experimental results of MiniAero

For the MPI version of MiniAero, their processes have to be explicitly defined and they only share a part of the problem. The Legion version of MiniAero has some calculation processes and Legion helpers. We test the 3D-Sod with three problem sizes, that is 128 × 128 × 4, 256 × 256 × 4 and 512 × 512 × 4, on one, two and four CPU cores.

#### 4.1.1 CPU utilization of MiniAero application

The CPU utilization, which is used to estimate the system performance, measures the percentage of CPU cycles used on a core. On a multi-core processor, a load of more than 100% indicates that two or more cores are being used by applications. Figure 1 shows CPU usage of MiniAero with different problem sizes running on different number of CPU cores. The figures show that the CPU usage of the MPI version is relatively stable and reaches about 100%. However, for the Legion version, the CPU cycles are not fully utilized by the Legion helper when the number of compute cores is less, but the usage keep increasing as the number of cores increases. On the other hand, those CPU cycles used by computational processes are reduced in our experiments. When the core number increases from 1 to 4, shown in Figure 1af and gi, the Legion helper CPU usage increases from about 48% to more than 92%. In contrast, the average CPU utilization of the calculation processes drops from 75–25%. This suggests that identifying dependencies, mapping, and scheduling tasks on Legion can cause significant overhead that interferes with the useful calculation. The problem size, however, does not affect the CPU usage very much. In Figure 1a,d and g, the execution time and CPU utilization of the Legion version are almost identical, while the execution time of the MPI version increases exponentially. Other experimental results with same number of compute cores show a similar trend. The Legion runtime system offers better scalability.

#### 4.1.2 Power usage of MiniAero application

The power consumption of the package and DRAM of both processors is similar. The biggest difference which is 12 W between packages is observed when MiniAero runs on a core as shown in Figure 2a,d and g. With the Legion runtime, the threads for arithmetic computational tasks are evenly pinned to cores of the two processors, while the Legion helper threads hovers between the cores and migrate across the cores some time. When the Legion helper floats to a processor running computational processes, the power consumption of that processor increases. For example, Figure 2b shows that the Legion helper is running on processor 0 and two computation processes are running on processors 0 and 1. Therefore, Package 0 draws 5.1 W more power when the processor is running at peak power. In Figure 2c, however, the Legion Helper runs on processor 1, which leads to more power consumption through this package. Despite this uncertainty, the total power consumption of both packages does not vary much when using the same number of cores. For example, in Figure 2c,f and i, the total power consumption of the package is 83.7–85.2 W. Memory consumes a small amount of power, that is 3.1–4.5 W and the variation is small as well. Combined with the CPU utilization results discussed in the previous subsection, we can observe that when the number of cores increases, the Legion Helper uses more CPU cycles and power consumption are also increased.

The total power consumption when running the Legion version, including both the computational tasks and the Legion helper, is 71.3–80.7% of that for the MPI version. The two limits are reached when the workload is 128 × 128 × 4. The power consumption of the Legion version on 1, 2 and 4 cores is 57.8, 72.6 and 81.7 W respectively, while the MPI counterpart consumes 81.1, 90 and 101.2 W.

In addition, we use PowerAPI to measure the power consumption of the MPI version and Legion version of MiniAero at the process level. The power consumption is depicted in Figure 3. Figure 3 compares the power consumption of processors measured by PowerAPI on varying problem sizes and settings (128 × 128 × 4, 256 × 256 × 4, 512 × 512 × 4 on 1,2,4 cores respectively). The power consumption measured by PowerAPI is close to the results provided by RAPL. Overall, the difference between the two tools is within a range of [2.4w, 2.9w]. As both versions of MiniAero consume a little amount of power from DRAM, we do not include it in the figure.

#### 4.1.3 Execution time and energy consumption of MiniAero

The execution time as shown in Figure 4 and energy consumption as shown in Figure 5 of Legion-version of MiniAero are relatively stable except the rise, when the Legion helper sends tasks to more cores for parallelism. In contrast, the MPI version follows the normal trend, where more cores accelerate execution and save energy. The results indicate that while Legion provides more partitions for the application, it distributes the workload equally among the cores and slows down tasks, which can be caused by the Legion helper. As a result, the power consumption of each processor does not change much while the execution time is prolonged, resulting in increased power consumption. The MPI version, on the other hand, fully exploits the extra cores, reducing execution time and power consumption.

The highest reduction in Legion execution time and energy is achieved when using a single core for a 512 × 512 × 4 problem size. The MPI version requires 36 times more execution time, and 45 times more energy than the Legion version respectively. Although the Legion helper causes more overhead, it reduces 89.1% of execution time and saves 90.8% energy compared to its MPI counterpart.

### 4.2 Experimental results of circuit

The Legion version of the circuit application is much more scalable than Legion version of MiniAero. The CPU utilization of Legion Helper jump to 17% at the beginning of the execution, and then the amount of utilization drops to 5% for the rest of the execution, as shown in Figure 6a. On the other hand, the CPU cores that perform computational tasks are fully used and the utilization is over 100% sometime. All the execution of Circuit on different numbers of cores has similar pattern.

In Figure 6b display that more power is consumed by the packet domain when more cores are used for computational tasks. From one core to two cores, power consumption increases by 6.6 W and an additional 6.8 W is consumed by two cores into four cores. In the meanwhile, the power draw of DRAM remains low and constant.

It is also shown in Figure 7 that with more cores for computational tasks, execution time and power consumption are reduced. For example, if you run on two cores and four cores, 49.7 and 73.3% of execution time and 42.3 and 64.1% of energy, respectively, is reduced as if only one core is running.

The power per watt of the Legion version of the circuit is 6.7 MFLOPS/W on a core. It reaches 11.6 MFLOPS/W on two cores and 18.0 MFLOPS/W on 4 cores, which is 1.73 times and 1.55 times higher than one core and two cores. This observation indicates good scalability and energy efficiency of Legion runtime and application.

## 5. Power and energy consumption with legion on CPU-GPU server

To discover the power and energy consumption of Legion runtime and application on heterogeneous platform, we perform circuit tasks on GPU cores and compare them to the results of the CPU server. The Legion helper of the circuit identifies dependencies, maps logical areas, schedules tasks on CPU cores, and performs tasks on GPU CUDA cores.

### 5.1 CPU utilization of circuit

Figure 8 shows the resource usage when connecting to the CPU server and the heterogeneous server. During the initialization phase, the CPU utilization on both platforms has a steep jump and reach beyond 100%, while the GPU utilization remain 0. After that, the GPU starts with parallel circuit tasks. For the two problem sizes (2 loops and 4 pieces, 4 loops and 8 pieces) shown in Figure 8, the circuit tasks run at a high CPU utilization of nearly 100%. The Circuit takes advantage of 2880 CUDA cores in the Tesla K40c GPU, and the massive parallelism leads to a distinct reduced execution time. In Figure 8a, the execution time of the circuit on the GPU server is only about 1/3 of that on the CPU server, although the initialization phase requires another 7.6 s. The larger problem size, as shown in Figure 8b, causes the execution time on the CPU server to be increased 3.2-fold, while the increase on the GPU is only 0.8-fold. This indicates that Legion scales are scaled very well in the heterogeneous CPU-GPU environment.

### 5.2 Power consumption of circuit on heterogeneous server

Figure 9 shows the power consumption of the circuit on the CPU server and heterogeneous server with Tesla K40c. The power consumption of the CPU at the process level, measured with PowerAPI [7], is 3.05 W and remains stable in both cases. The power consumption of GPU, as measured by NVML [8], varies as the problem size changes; which is 50.5 W for 2 loops and 4 pieces of components and 55.1 W for 4 loops and 8 pieces of components respectively. This is because GPU has more capacity to handle more independent tasks and gain more throughput but consume more power.

### 5.3 Execution time and energy consumption of Circuit

Figure 10 depicts the execution time and energy consumption of the Circuit. Not surprisingly, the GPU version of Circuit runs on heterogeneous platform shorten the execution time but at the cost of consuming more power. For the problem size of 2 Loops and 4 Pieces, it takes 65.3 s for CPU version and 26.7 s for GPU version to execute, and consumes 389.6 J and 2164.1 J energy respectively. That means CPU version takes 1.45 times more execution time and saves 72.0% of the power compared to the GPU execution. In another situation for the problem size of 4 Loops and 8 Pieces, it takes 240.4 s and 1469.9 J for CPU version, and 53.9 s and 4782.6 J for GPU version to execute. That means CPU version of the circuit takes 3.46 times more execution time and saves 69.3% of the energy. This result indicates that Legion applications with large problem sizes should be delivered onto heterogeneous platform to reduce their execution time, which can lead to a slight increase in energy consumption.

### 5.4 Influence of GPU frequency scaling

Dynamic voltage and frequency scaling (DVFS) is often used to find the best configuration for optimal energy and energy savings. Figure 12 compares the performance of circuit running on GPU accelerator with different frequencies scaling, where Figure 11 shows the power consumption of circuit running on different frequencies, Figure 12a compares the execution time. Figure 12b and c describe the energy consumption and the “FLOPS” which indicate the energy efficiency of the circuit application. From the figure we can see that the standard frequency which is 745 MHz of the Tesla K40c GPU is not the best setting for the Legion circuit. With the lowest frequency at 324 MHz, the circuit takes 2.21 times more execution time while saving 35% of power. Execution time is reduced by 18.8 with 3.4% energy savings when operating the circuit with the highest GPU frequency. In both cases the power consumption is lower than at the standard frequency. Both frequency settings provide good energy efficiency. The frequency selection depends on the power requirements.

To follow the advance of hardware technology, we not only test Legion applications on our Nvidia K40 GPU, but also run the Legion version of circuit on a new GPU, that is P100 GPU Accelerator(12 GB Card). We scale the frequency of P100 to its base frequency at 1126 MHz and its max frequency at 1303 MHz to evaluate the performance of circuit. Figure 13 shows the performance of the Legion version of circuit with a workload of loops = 4 and pieces = 8. From Figure 13a, we can see if the frequency of P100 is set to 1303 MHz, the power consumption exceeds 100 W, while the power consumption is around 88 W, if the frequency is set to 1126 MHz. Figure 13bd depict the execution time, energy consumption, and the processing power of P100 for Legion circuit respectively. Compared to Tesla K40c, there is a big improvement on performance, while the energy consumption has a significant drop. This is due to the reduced execution time. Hence, we expect that the Legion version of circuit will have a better performance on the latest GPUs.

## 6. Findings and discussion

The Legion -based MiniAero is a good example to highlight the Legion Helper’s scalability problem. If the Legion helper is unable to isolate independent tasks quickly enough with the increased number of associated compute resources (such as CPU cores), this becomes a performance bottleneck. The resource utilization of Legion helper processes continues to increase and the throughput of compute tasks decreases. This leads to a longer execution time and reduced energy efficiency.

In cases where the Legion system and legacy applications have good scalability, energy and energy savings become more effective as more computational resources are used. The execution time of an application is significantly reduced, while the power consumption does not increase much, resulting in better energy efficiency.

Legion offers significant benefits through GPU computing. As GPU-mapped and scheduled tasks can be performed in parallel, performance enhancement and energy efficiency can be further improved.

## 7. Related works

Some new Legion program model features, model components, and how these components work were presented in [4]. A combination of static and dynamic checks to improve the solidity of the Legion system and a compositional parallel semantics are described in [12]. An event-based runtime system [13] is embedded in Legion asynchronously for heterogeneous and distributed storage architectures. Structure slicing [14] breaks the specification of data usage, identifies data parallelism, and reduces data movement. A highly productive programming language, Regent [10], which can be translated into Legion implementation, runs sequentially without explicit synchronization.

Power profiling in production computer systems provides valuable data and knowledge for the development of power simulators and resource scheduling policies. Fine-grained power profiling techniques measure the power consumption of individual hardware components such as CPU [15], memory [16], hard disk [17] and other devices [18]. In contrast, coarse-grained performance profiling aims to characterize system-wide performance dynamics, such as the macro stream framework [19]. Moreover, a power meter for virtualized environments was presented in [20]. CPU event counters and the Performance Programming Interface Library were used to estimate the power usage on a per-thread basis. Kamil et al. profiled HPC applications on multiple test platforms and projected the performance profiling results from a single node to a complete system [21]. Ge et al. investigated the influence of software and hardware configurations on system-wide power consumption [22]. They found that properties of HPC applications affect the power consumption of a system. Hackenberg et al. conducted a detailed analysis of Haswell’s P-state and C-state transition latencies and the impact of Haswell’s new power management mechanisms on memory bandwidth and performance reproducibility [23]. Our work differs from these previous efforts by measuring and analyzing the impact of new Haswell power management capabilities on the performance and performance of HPC codes.

Some researchers analyzed the power and energy efficiency of different types of applications run on HPC systems. Bari et al. investigated OpenMP’s runtime configurations on power constrained systems at different power levels [24]. They found that a suitable selection of OpenMP’s runtime parameters could improve the execution time and reduce the energy consumption of a parallel program by up to 67 and 72%, respectively. Qasem et al. [25] evaluated the impact of data layout and placement on the energy efficiency of heterogeneous applications by means of memory divergence, data access patterns, arithmetic intensities and data placement. They found that data layout and placement had a significant impact on the energy efficiency. Additionally, analytical models were developed to analyze energy efficiency in [26]. The models were able to support a priori selection of the operating frequency that leaded to a near optimal energy consumption for the execution of multi-threading applications. Meanwhile, Heinrich et al. aimed to predict the energy consumption of MPI applications by developing a computation model, a communication model, and an energy model which were integrated into the SimGrid simulation toolkit [27]. To improve the system performance by utilizing the available power budget more efficiently on multiple-node platforms, a hierarchical multi-dimensional power aware allocation framework was developed in [28] for power bounded parallel computing. The power allocation was performed using memory power-level settings, thread concurrency throttling, and core-thread affinity, and the scheduler outperformed other methods by 20% on average.

To control the power consumption of HPC systems, power limitation [29] is a promising and effective approach. System operators can balance the performance and power consumption of clusters by adjusting the maximum amount of power (also called the power budget) that clusters can consume. Pelly et al. presented a dynamic current sourcing and coverage method at the [30] Power Distribution Unit (PDU). They proposed using a heuristic policy to shift the capacity weakness to servers with increasing power requirements. Zhang et al. proposed a hybrid software/hardware power capping system and proved that their power cap outperforms the hardware power capping system provided by Intel and has the same reaction time [31]. For HPC jobs, many factors affect power consumption, including hardware configurations and resource usage. Femal et al. developed a hierarchical management policy to distribute the power budget to clusters [32]. Kim et al. investigated the relationship between CPU voltages and system performance and energy efficiency [33]. Utilizing Dynamic Voltage Scaling (DVS) technologies, a Task Planning Policy has been proposed that aims to minimize energy consumption while meeting specified performance requirements. Rountree et al. proposed guidelines for overprovisioning hardware with hardware-enforced performance limitations and system-wide performance reallocation in an application-independent manner [34, 35]. We have developed a complete system simulator, TracSim [36], which estimates the capacity of trapped energy under various power-limiting and job-planning guidelines.

## 8. Conclusion

In this chapter, we describe the power consumption, energy efficiency, performance, and resource usage of Legion runtime environment and applications. Our experimental results show that Legion offers favorable energy efficiency, although in some cases its scalability can be influenced by Legion Helpers. The Legion programming model is consistent with the massively parallel nature of the GPU design and shows good performance and energy efficiency for large problem-size applications.

## Acknowledgments

This work is supported by the U.S. Department of Energy contract DE-AC52-06NA25396. This chapter has been assigned the LANL identifier LA-UR-16-25965.

## Conflict of interest

The authors declare no conflict of interest.

## More

© 2018 The Author(s). Licensee IntechOpen. This chapter is distributed under the terms of the Creative Commons Attribution 3.0 License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.

## How to cite and reference

### Cite this chapter Copy to clipboard

Song Huang, Song Fu, Scott Pakin and Michael Lang (December 10th 2018). Characterizing Power and Energy Efficiency of Legion Data-Centric Runtime and Applications on Heterogeneous High-Performance Computing Systems, High Performance Parallel Computing, Satyadhyan Chickerur, IntechOpen, DOI: 10.5772/intechopen.81124. Available from:

### Related Content

Next chapter

#### Parallel and Distributed Computing

Edited by Alberto Ros

First chapter

#### Fault Tolerance of Programmable Devices

By Minoru Watanabe

We are IntechOpen, the world's leading publisher of Open Access books. Built by scientists, for scientists. Our readership spans scientists, professors, researchers, librarians, and students, as well as business professionals. We share our knowledge and peer-reveiwed research papers with libraries, scientific and engineering societies, and also work with corporate R&D departments and government entities.

View all Books

format: plain


text:
# Homework Help: Wave Function as superposition of eigenstates

1. Apr 19, 2007

### mavyn

Hi!

How can I write the wave function of a particle in an infinite box (in the state n) as a superposition of the eigenstates of the momentum operator?

the wave function is:

PHIn(x,t) = sqrt(2/a) * Sin(n * PI/a * x) * exp(-i En/h * t)


text:
# Tractatus Logico-Philosophicus (6.5)

Tractatus Logico-Philosophicus (6.5)

In the "Tractatus Logico-Philosophicus" of Ludwig Wittgenstein , Proposition 6.5 seeks to ground his philosophy of action (Proposition 7: "Whereof one cannot speak, thereof one must be silent").

*6.5 "For an answer which cannot be expressed, the question too cannot be expressed.:"The "riddle" does not exist.:"If a question can be put at all, then it "can" also be answered.

Although the historical significance of "Tractatus" is for its influence on the philosophers of logical empiricism, by providing them with a framework for a philosophy of science, and hence engineering, Wittgenstein actually wrote it as a work on ethics. See his propositions 6.4 onward.

But his motivation for writing, and the style of presentation, follow Frege and Russell, below.

Tractatus 1-2

*1 "The world is all that is the case.
*1.1 "The world is the totality of facts, not of things.

These famous propositions, starting from 1, and ending at 7, are striking for their simplicity and ambition.

Proposition 6.5 (and its consequence) can not be understood until one realizes that Wittgenstein was a son of a family at the apex of Viennese culture, the capital of an empire (now vanished)ref|Jan73,pp28-29. In today's terms, the answer 6.5 is that from a man who some might view as possessed of the highest intellect, moral discrimination, and worldly wealth. He literally could do anything he wished. But his father, Karl, thought him untalented, in comparison to the rest of the family, which included musicians, and artists. He was schooled at home until age 14 (he later imposed his ideals on his hapless students after he had completed "Tractatus", and had undertaken training as a schoolteacher (1920)). He was assigned to study engineering and undertook the curriculum of a mechanical engineer at Berlin Technische Hochschule (1906).

Frege and Russell

He later attended the University of Manchester in England as a doctoral student in aeronautical engineering (1908). Thus Wittgenstein undertook the study of the foundation of mathematics, when he began to design jet propellers. But he refused to accept the propositions he encountered and brought his questions to Frege, who had undertaken a program to base mathematics on logic (1878). Frege, unable to counter his questions, referred him to Russell. Russell, by this time, had completed a work on Frege's program (1903), and was collaborating with Whitehead on "Principia Mathematica". He duly appeared at Cambridge (1911), where Russell assigned him a tutor, K.E. Johnson, for logic. After one hour, Johnson reported that Wittgenstein was teaching "him". But Russell had discovered some antinomies in logic, seriously calling into question Frege's program. Frege's program for logic as the basis of mathematics was now in shambles. Wittgenstein thus retired to Norway to work out his ideas (1913), and perhaps rescue Frege's program. This was the basis for his Tractatus.

While in Norway, his father Karl died (1913), leaving him heir to a fortune, which he attempted to give away (much of it to his surviving siblings, on the condition that they not give any back to him). By 1914, the Austro-Hungarian Empire was at war with Russell's British Empire, and Wittgenstein volunteered to fight for the Empire of Habsburg Vienna.

Hertz' theory of models and Russell's theory of meaning

While a soldier, before the serious fighting, he found a magazine article about a lawsuit involving a baby carriage and a truck. The court case re-enacted the incident with models. It was this event which made him realize that the subject of this process could be described by pictures as well as in words -- the genesis of his "picture theory of language" (Tractatus 2.*). But this idea was already endemic in Viennese thoughtref|Jan73,p.31.
*2.1 "We make to ourselves pictures of facts.

Tractatus 3-7

*3 "The logical picture of the facts is the thought.
*4 "The thought is the significant proposition.
*5 "Propositions are truth-functions of elementary propositions.

In this case, the elementary propositions, say "a". stand for ordinary sentences in ordinary language. They are not meant to be further analyzed, but are taken as givens.
*5.2522:"The general term of the formal series "a, O' a, O' O' a," ... I write thus: " ["a, x, O' x"] ". This expression in brackets is a variable. ...

Wittgenstein thus gives a notation which expresses an inductive form.
*6 "The most general form of proposition is ["p, ξ, N( ξ )"] .

In this notation, ξ expresses the set of the arguments of truth function ξ, and N( ξ ) is the power set of ξ.

*6.241 proves 2*2=4 in one sentence, a feat which took Russell hundreds of pages to prove 2+2=4, as his demonstration that he believes his method is more powerful.

*6.33 "We do not "believe" a priori in a law of conservation, but we "know" a priori the possibility of a logical form.

The conservation laws of physics stand as a statement of belief, in contrast with the "a priori" character of the logical form in 6.

Historically, the statements from 6.4 onward were ignored by the Vienna Circle and the other proponents of logical empiricism, as they simply did not know what to make of them. Wittgenstein was not present to bolster his case, as he was a schoolteacher and gardener at the moment that Tractatus was published. Afterward, he did not help his case by reciting the pacifist poems of Rabindranath Tagore to them, in place of analytic discussion. Indeed, 6.41 below seems to have a different character from the chain of thought stated above.

*6.41 "The sense of the world must lie outside of the world. ... "In" it, there is no value, - and if there were, it would be of no value. ...

*6.42 "Hence also there can be no ethical propositions. ...

*6.421 "... Ethics are transcendental. ...

*6.423 "Of the will as the bearer of the ethical we cannot speak.

*6.5 "For an answer which cannot be expressed, the question too cannot be expressed.

*7 "Whereof one cannot speak, thereof one must be silent".

But 6.41 needs to be re-examined in this chain of justification. Statement 6.41 appears to be an appeal; the word "must" shows up in striking contrast to the rest of Tractatus, which consist of declarative statements. His usual economy in words is replaced by repetition. 6.41 is revisited below.

Wittgenstein himself was an exemplar of 7, by "acting" instead of "speaking", an ethical position. What actually impelled Wittgenstein, according to Janik and Toulmin, was the role models of a few men like Fritz Mauthner, as Wittgenstein himself set out to live the example of 7, as an engineer, a soldier, a schoolteacher, an architect, a gardener, a professor, a hospital orderly. As a professor, he attempted to follow up on "Tractatus", with his posthumous "Philosophical Investigations".

There is an ominous side-note to this action; at the same time that this Viennese was living his ideals, the forces of fascism were also acting to destroy the existing world order. These forces appeared not to be based on existing ethical principles, but on rather different ones based solely on might; the poetry of Rabindranath Tagore meant nothing to them, either.

6.41 revisited

Because 6.41 is different in character from the other propositions, a review is appropriate. Here we use the machinery of deontic modal logic, with the following conventions, but tag 6.41's statements with the type of statement:
*$Diamond$ contingency is "not" necessarily so but which is "actually" so, and which "could have been otherwise".
*$Box$ necessary if it "must" be so

*6.41 $Box$"The sense of the world must lie outside of the world. $Diamond$In the world everything is as it is and happens as it does happen. "In" it, there is no value, - and if there were, it would be of no value. :*$Box$"If there is a value which is of value, it must lie outside all happening and being-so. $Diamond$ For all happening and being-so is accidental.:*Not $Diamond$"What makes it non-accidental cannot lie in the world, for otherwise this would then again be accidental.:*$Box$ "It must lie outside the world.

6.41 is an example of deontic modal logic. Wittgenstein is making statements of necessity of ethical action, rather than basing actions on contingent or accidental results, which he equates with the world. The doubling of the phrase "no value" is an indication that the statements are being made for different modalities.
*From a humanist point of view, his actions taken, were to negate the accidental parts of his life:
**the accident of his wealth, which he attempted to negate by giving away;
**the accident of his position in society, which he attempted to negate by volunteering for the ranks in the army, rather than accepting a commission in the army;
**the accident of being a professor in wartime, which he attempted to negate by becoming a hospital orderly.
**Even his last words "tell them I've had a wonderful life" bespeak someone who was evaluating the sense of his life (and must have been so doing in the other examples just stated).

References

*Allan Janik and Stephen Toulmin (1973, 1996), "Wittgenstein's Vienna" ISBN 1-56663-132-7. Includes Notes, Index, 314 pp. Over 260 books and articles cited in the bibliography. Toulmin was a student of Wittgenstein up to the time of his resignation from Cambridge. :They cite Fritz Mauthner's "Critique of Language" ("Sprachkritik"). "Beiträge zu einer Kritik der Sprache", 3 vols, Stuttgart: J.G. Cotta (1901-3), Wittgenstein cites this as 4.0031 with a claim his view is different. Janik and Toulmin note that his view began to converge with Mauthner's upon his re-entry into philosophy in 1928.:They cite the Brenner Circle as the pathway for Wittgenstein's donations to Rilke. For more, see Richard Detsch (1990) "Georg Trakl and the Brenner Circle" (American University Studies. Series I, Germanic Languages and Literature, Vol 91)
* Jaakko Hintikka (2000) "On Wittgenstein" ISBN 0-534-57594-3 p. 55 cites W's accus. of Carnap upon receiving a 1932 preprint.
* Hans Sluga and David G. Stern, eds. (1996). "Cambridge Companion to Wittgenstein" ISBN 0-521-46591-5
* P. M. S. Hacker (1999), "Wittgenstein" 99pp. ISBN 0-415-92376-X
* Marie McGinn (1997) "Wittgenstein and the Philosophical Investigations" ISBN 0-415-11191-9
* Ludwig Wittgenstein (1939) "Remarks on the Foundations of Mathematics", Revised Edition. G. H. von Wright, R. Rhees (eds.), G. E. M. Anscombe (trans.) ISBN 0-262-73067-7
* Ludwig Wittgenstein, "Vermischte Bemerkungen" (his personal notes taken 1914-1944) packaged as "Culture and Value" (1977), Peter Winch, trans. ISBN 0-226-90435-0
* Ludwig Wittgenstein, "Lectures and Conversations on Aesthetics, Psychology, and Religious Belief" Cyril Barrett, ed. ISBN 0-520-01354-9

*Zach, Richard, (1999), "Completeness before Post: Bernays, Hilbert, and the development of propositional logic", "Bulletin of Symbolic Logic", 5(3): 331-366.
* [http://64.233.167.104/search?q=cache:7g0nkgjBJioJ:www.ide.bth.se/~pdv/Papers/PhD.ps+IEEE+Tractatus+Systems+Man+Cybernetics&hl=en&client=firefox-a Davidsson (1996) "Autonomous Agents and the Concept of Concepts" - Use of truth-functions, see note 285, in this computing thesis.]
* [http://www.dfki.de/~bauer/um-ws/Final-Versions/Noh/um97ws.html Noh (1997) recursive agency - Bayesian belief systems applied to anti-aircraft defense]
* [http://64.233.167.104/search?q=cache:kPznmnlTQoYJ:www-cse.ucsd.edu/users/goguen/pps/ox-mono89.ps+IEEE+Tractatus+Systems+Man+Cybernetics&hl=en&client=firefox-a Goguen (1990) "Four Pieces on Error, Truth and Reality" - p. 21 cites Wittgenstein's significant contributions to the technique of logic (e.g., truth tables) in this computing thesis.]
* [http://www.kurzweilai.net/meme/frame.html?main=/articles/art0297.html Raymond Kurzweil (1990), "The Age of Intelligent Machines" cites the effect of Wittgenstein on the adherents of logical positivism, via the publication of Tractatus.]

Wikimedia Foundation. 2010.

### Look at other dictionaries:

• Tractatus Logico-Philosophicus — Le Tractatus logico philosophicus est une œuvre de Ludwig Wittgenstein. Elle est d abord parue en allemand en 1921 sous le titre Logisch Philosophische Abhandlung, puis en anglais un an plus tard sous le titre latin actuel. Avec Investigations… …   Wikipédia en Français

• Tractatus Logico-philosophicus — Le Tractatus logico philosophicus est une œuvre de Ludwig Wittgenstein. Elle est d abord parue en allemand en 1921 sous le titre Logisch Philosophische Abhandlung, puis en anglais un an plus tard sous le titre latin actuel. Avec Investigations… …   Wikipédia en Français

• Tractatus logico-philosophicus — Página de título de la primera edición inglesa de 1922 Autor …   Wikipedia Español

• Tractatus Logico-Philosophicus — is the only book length work published by Austrian philosopher Ludwig Wittgenstein. He wrote it as a soldier and a prisoner of war during World War I. First published in German in 1921 as Logisch Philosophische Abhandlung , it is now widely… …   Wikipedia

• Tractatus logico-philosophicus — Le Tractatus logico philosophicus est une œuvre de Ludwig Wittgenstein. Elle est d abord parue en allemand en 1921 sous le titre Logisch Philosophische Abhandlung, puis en anglais un an plus tard sous le titre latin actuel. Avec Investigations… …   Wikipédia en Français

• Tractatus Logico-Philosophicus — Die ersten beiden Ebenen des Tractatus gemäß der Wittgenstein schen Nummerierung Der Tractatus logico philosophicus oder kurz Tractatus (der ursprüngliche deutsche Titel war: Logisch Philosophische Abhandlung) ist das erste Hauptwerk des… …   Deutsch Wikipedia

• Tractatus logico-philosophicus — Die ersten beiden Ebenen des Tractatus gemäß der Wittgenstein schen Nummerierung Der Tractatus logico philosophicus oder kurz Tractatus (ursprünglicher deutscher Titel: Logisch Philosophische Abhandlung) ist das erste Hauptwerk des… …   Deutsch Wikipedia

• Tractacus logico-philosophicus — Tractatus logico philosophicus Le Tractatus logico philosophicus est une œuvre de Ludwig Wittgenstein. Elle est d abord parue en allemand en 1921 sous le titre Logisch Philosophische Abhandlung, puis en anglais un an plus tard sous le titre latin …   Wikipédia en Français

• Tractatus — logico philosophicus Le Tractatus logico philosophicus est une œuvre de Ludwig Wittgenstein. Elle est d abord parue en allemand en 1921 sous le titre Logisch Philosophische Abhandlung, puis en anglais un an plus tard sous le titre latin actuel.… …   Wikipédia en Français

• Tractatus — es una palabra latina que en español traduce como tratado, y que puede referirse a: Tractatus Coislinianus, un manuscrito antiguo que esboza una teoría de la comedia en la tradición de la Poética de Aristóteles. Tractatus logico philosophicus, un …   Wikipedia Español


text:
Given population counts in 5-year age groups for males and females, follow Das Gupta's steps to calculate a composite index of the quality of the age and sex structure for a given population.

ageSexAccuracyDasGupta(
Males,
Females,
Age,
ageMin = 0,
ageMax = max(Age),
OAG = TRUE
)

## Arguments

Males numeric. A vector of demographic counts in 5-year age groups for males. numeric. A vector of demographic counts in 5-year age groups for females. numeric. A vector of ages corresponding to the lower integer bound of the counts. integer. The lowest age included in calculations. Default 0. integer. The upper age bound used for calculations. Default max(Age). logical. Whether or not the top age group is open. Default TRUE.

## Details

It is assumed that the terminal age group is open, in which case it is ignored. Set OAG = FALSE if the top age is indeed a closed interval that you want included in calculations. If ageMax == max(Age) and OAG is TRUE, then ageMax gets decremented one age class.

## References

Gupta AD (1955). “Accuracy index of census age distributions.” In United Nations proceedings of the World Population Conference 1954 (Rome), volume IV, 63--74.

## Examples

# data from table for South West Africa (1946) given in reference
Males   <- c(2365, 2320, 1859, 1554, 1758, 1534, 1404, 1324,
1118, 872, 795, 745, 743, 574)
Females <- c(2244, 2248, 1773, 1594, 1616, 1510, 1478, 1320,
1085, 858, 768, 726, 533, 282)
Age     <- seq(0, 65, by = 5)
ageSexAccuracyDasGupta(Males, Females, Age)
#> [1] 5.68162# this method is not on the same scale as the others, so don't directly compare.
ageSexAccuracy(Males, Females, Age, method = "das gupta")
#> [1] 5.68162


text:
# Striim 4.0.4 documentation

##### Starting the Striim Agent process on the HP NonStop platform

The agent process (WAGENT) must run at all times to allow the Striim server to make connections and request change data from the HP NonStop platform. The agent can be started from the TACL command prompt as follows:

[PARAM WA-LOGPRIORITY <log-level>]
[PARAM ALLOWED-TABLES <allowed-tables-file-name>]
[PARAM WA-ASSUMED-TIMEZONE <time-zone-code>]
[PARAM WA-CHARSET-FOR-CHAR <charset-name>]
[PARAM WA-CHARSET-FOR-NCHAR <charset-name>]
[PARAM WA-CDC-CPU-LIST "<list-of-CPU-numbers>"]
[PARAM WA-ENCRYPT-ALL {TRUE|FALSE}]
[ADD DEFINE =TCPIP^PROCESS^NAME, CLASS MAP, FILE <TCP/IP-process-name> ]
RUN WAGENT [ / NAME <a-name>, TERM $ZHOME/ ] --agent_port <port-num> --logger_name <ems-collector> Where: <log-level> is a number that specifies the highest level of detail for the messages the Striim processes report. Messages at the specified value and below are reported. The permitted values are : 0 FATAL 1 ALERT 2 CRIT 3 ERROR 4 WARN 5 NOTICE 6 INFO 7 DEBUG 8 TRACE The default value is 4, which is WARN, the recommended value for normal use. <allowed-tables-file-name> is the name of the Edit file you created in step 4 of "Installing the agent." If you do not want to control which files can be accessed by Striim applications, you do not have to specify this parameter. <time-zone-code> is the code for the time zone used by date values in the files and tables. The valid values (which are not case-sensitive) are: • GMT for Greenwich Mean Time • LST for Local Standard Time as configured for the NonStop system, ignoring daylight savings time • LCT for Local Civil Time as configured for the NonStop system, including daylight savings time (default used if this PARAM is not specified) <charset-name> is one of the character set names listed in Encoding of character fields and specifies the encoding used for character fields. See that section for a full description of the character set names and the PARAMs with which they are used. <list-of-CPU-numbers> is a list of CPU numbers in which CDC processes may be started. The point of this is so that when more than one CDC process is running, the CDC processes do not all have to run in the same CPU. There might be multiple CDC processes due to having multiple TQL applications running or a single TQL application that uses parallel audit trail reading . The CPU numbers may be separated by spaces or commas. The number of a CPU that is down is accepted, but a number that is larger than the highest numbered CPU is not accepted and causes an error and termination of WAGENT. The CPU numbers in the list are used in round robin fashion when choosing the CPU in which the next CDC process is started, skipping any CPU that currently is down. If the WA-CDC-CPU-LIST PARAM is not present, all CDC processes are started in the CPU in which WAGENT is running. The same CPU number may appear in the list more than once. This can be used to use some CPUs. more often than others for CDC processes. See HP NonStop reader properties for a description of how to request parallel audit trail reading. PARAM WA-ENCRYPT-ALL TRUE encrypts messages between Striim and WAGENT (and all processes started by WAGENT) for applications or flows created WITH ENCRYPTION (see CREATE APPLICATION ... END APPLICATION ). The encryption key is set automatically by Striim. When WA-ENCRYPT-ALL is true, attempting to run an application created without encryption will fail with an error. Similarly, if WA-ENCRYPT-ALL is omitted or FALSE, attempting to run an application created with encryption will fail with an error. To run applications both with and without encryption, start two WAGENT processes, one with WA-ENCRYPT-ALL TRUE and the other without, and specify the port number for the appropriate WAGENT process in the HP NonStop reader properties in the application. Messages related to this encryption may appear in either the NonStop system or Striim server logs, and do not always specifically mention encryption. When WAGENT expects an encrypted message and decryption fails, or when it expects an unencrypted message and fails to parse a GPB object, it writes a warning to its log. If Striim sends a start command that WAGENT does not recognize due to mismatched encryption settings, Striim will write an error to its server log and the application will not start. <TCP/IP-process-name> is the name of the TCP/IP process that the WAGENT and CDC processes should use. The ADD DEFINE command may be omitted if the default process,$ZTC0, is the one that should be used. The ADD DEFINE commands for other DEFINE names that specify TCP/IP settings, such as =TCPIP^HOST^FILE, TCPIP^NETWORK^FILE, etc., also may be included here if the Striim programs must use non-default settings.

<a-name> is a Guardian process name to be used to identify the WAGENT process.

<port-num> is the port number the agent process listens on for connections from the Striim server.

<ems-collector> is the name of an EMS collector process where the agent and CDC processes will write any informational and error messages.

We recommend that you name the agent process to aid process identification, though that is not required.

The Striim processes do not write any messages of their own to the process' home terminal, but if the C++ runtime library reports an error or if one of the processes abends and produces a saveabend file, the messages about those events will be sent to the home terminal. Further, when the agent starts one of the CDC processes, if the agent's home terminal no longer exists, starting the CDC process will fail. For both these reasons, it is best not to let the agent inherit a telnet session's home terminal, but specify a device or process that always exists, such as \$ZHOME or a VHS process, as the TERM argument of the RUN command for WAGENT. Using a VHS process would allow you to control where the messages are logged, which probably would make it easier for you to find them, should some serious error occur in a Striim component.


text:
# Suggestions before filing an SOF bug¶

## Run alsa-info¶

The alsa-info script extracts a lot of information from the platform (PCI ids, ACPI ids, DMI, controls, dmesg) that will help the SOF team understand which hardware and OEM configuration is used. alsa-info can upload the results to a server; providing the link is very useful when filing a bug.

## Disable SOF on PCI/HDaudio devices to test audio playback¶

When audio issues occur, first see if the HDaudio legacy can generate sound on speakers and headsets. Accomplish this by adding “options snd-intel-dspcfg dsp_driver=1” to /etc/modprobe.d/alsa-base.conf.

If no sound can be heard and jack detection is not functional, an HDaudio external codec configuration is likely. In some cases, the Linux drivers are missing configuration information and may only enable two of the four speakers present. All of these cases are orthogonal to SOF issues in that the SOF driver cannot compensate for codec driver problems on its own.

## Try booting into Windows first, then reboot into Linux¶

On some platforms, such as with an HDaudio codec connected to amplifiers over an I2C/I2S link, the codec driver needs to perform a set of amplifier configurations. This is often handled in Windows but not in Linux codec drivers. A classic example of such issues is when headphone playback works, but speaker playback does not (or not on all speakers).

These types of issues also occur with the HDaudio legacy driver and are not part of SOF bugs proper. To fix such issues, either obtain direct support from the codec vendor, or reverse-engineer the missing configuration by snooping HDaudio commands in a Windows environment.

## Make sure the ME is enabled¶

If the ME is disabled by the OEM or the user, firmware authentication will fail without any explicit feedback provided to the user. In case of any authentication failure, verify that the ME is not disabled. More information about the ME is available in the “Firmware binary” section of Overview of Intel hardware platforms.

## Test at the ALSA ‘hw’ device level¶

When the legacy HDaudio driver produces audible sound without distortion and an SOF-based solution does not, user space configuration issues are possible.

Use the following commands to check if the SOF driver is functional at the hardware device level:

speaker-test -Dhw:0,0 -c2 -r48000 -f S16_LE
arecord -Dhw:0,0 -c2 -r48000 -f S16_LE -d 10 test.wav

The card and device indices may need to be adjusted on different platforms: use aplay -l and arecord -l to see supported values on your platform.

If the playback or capture seems ok at the hardware device level, then the following packages may need to be updated:

• alsa-lib

• alsa-ucm-conf

• pulseaudio

## Verify mixer settings¶

A classic issue with Linux audio is that a mixer control value remains muted or with a volume set to zero. The alsamixer command can be used to check if any paths are disabled (represented as “m”) or if the volume settings are not correct.

Note that randomly playing with ALSA mixer settings can damage audio accessories, speakers, or your hearing. Never change mixer settings while listening to loud music on a headset!

## Enable dynamic debug¶

To avoid spamming all Linux users with audio-specific information, only critical errors are reported in the dmesg log. That information may not be enough to debug a specific issue, and the recommendation is to add the following options to the /etc/modprobe.d/sof-dyndbg.conf file:

options snd_sof_intel_byt dyndbg=+p
options snd_sof_intel_bdw dyndbg=+p
options snd_sof_intel_ipc dyndbg=+p
options snd_sof_intel_hda_common dyndbg=+p
options snd_sof_intel_hda dyndbg=+p
options snd_sof dyndbg=+p
options snd_sof_pci dyndbg=+p
options snd_sof_acpi dyndbg=+p
options snd_sof_of dyndbg=+p
options snd_sof_nocodec dyndbg=+p
options soundwire_bus dyndbg=+p
options soundwire_generic_allocation dyndbg=+p
options soundwire_intel_init dyndbg=+p
options soundwire_intel dyndbg=+p
options snd_soc_skl_hda_dsp dyndbg=+p
options snd_intel_dspcfg dyndbg=+p

Note that this list is only an example.

## Install sof-logger¶

If an issue with the SOF firmware is reported, such as IPC errors, SOF developers will need DSP traces. This is typically done by installing /usr/local/bin/sof-logger as well as the .ldc file, and using the following command to extract DSP traces:

sof-logger -t sof-tgl.ldc


text:
You are currently browsing the monthly archive for July 2007.

Readers should be warned that the author is not an expert of CFT and, in fact, not even a novice in physics. What follows should be taken with a hefty pinch of salt.

Given any Riemann surface $X$ (as a target manifold) one is able to associate to it an $SCFT(X)$ or a super conformal field theory. The word super can just be construed as a $\mathbb{Z}_2$-grading of the theory. This is a simplistic version as normally one should also take into account several other parameters like a B-field and so on. Within an SCFT there is a topological sector called a TQFT (topological quantum field theory) which is insensitive to the metric on the target space. There are axiomatic descriptions of this theory due to Atiyah and Segal and in its latest version possibly due to Costello. Roughly an $n$-dimensional TQFT is a functor satisfying a lot of axioms from $n$-manifolds with labelled boundaries (incoming and outgoing) to symmetric monoidal DG (differential graded) categories with some twisting.

It seems when people talk about modular forms they tend to forget that they are very related to families of elliptic curves. Here I want to explain some simple way to understand the connection. We will consider modular forms for the full modular group $SL(2, \mathbf Z)$.

So consider the simplest family of elliptic curves, the Weierstrass family:

$y^2=x^3+ax+b.$

Recently, the norm-residue homomorphism has been the subject of intense discussions in the K-theoretic community following the proof of the Bloch-Kato conjecture by Voevodsky, Suslin and Rost (see Rost’s lecture at this year’s Arbeitstagung.) The goal of this post is to explain the norm-residue homomorphism in a down to earth ring-theoretic language.

(Via Anton (my fellow-blogger) and his wife Masha- their seven year old daughter Ivanka’s notes from Hirzebruch’s opening lecture at the 50th Arbeitstagung here a couple of weeks ago)

Recently I asked Faltings for some references for a self-study of Arakelov theory beyond Lang’s Arakelov theory.

He suggested the following (all revolving around the arithmetic Riemann-Roch theorem):

1. Papers by Gillet and Soule on arithmetic intersection theory

2. Papers by Bismut, Gillet and Soule on determinant of cohomology of an arithmetic variety (towards Riemann-Roch for this determinant.)

Recently I was trying to understand what’s behind the mysterious condition

$\sum_i [z_i]\wedge[1-z_i] = 0\in \Lambda^2 \mathbb C^\times$

for elements $z_i\in \mathbb C$ ($z_i\neq 0, 1$) to define an element $\sum_i[z_i]$ in the Bloch group. It appears that the condition naturally appears if one studies hyperbolic $3$-manifolds.

Of late, a lot of people have been asking me about Tannakian categories, so I decided to post this short blurb (mainly to check the Latex-related features of wordpress and also to provide some bird’s-eye view of why we should care about Tannakian categories.)

To begin with:

Definition
A neutral Tannakian category $\mathcal{T}$ over a base field $k$ is a rigid abelian tensor category with an $k$-linear exact faithful tensor $\omega: \mathcal{T} \longrightarrow \textrm{Vect}_k$ ($\rm{Vect}_k$ being the category of vector spaces over $k$) which one calls the fiber functor.