Evaluating arithmetic expressions using tree contraction A fast and scalable parallel imple
中医药名词英文翻译06(中药学)
06.001草药herb我国局部地区、某些人群或民间习用,加工炮制欠规范的中药。
06.002药材crude medicine ; crude drug初步加工处理的中药原料药。
06.003道地药材genuine regional drug特定产地的特定品种,且质量、疗效优良的药材。
06.004鲜药fresh medicine; fresh crudedrug 鲜、活应用的药物。
06.005天然药物natural medicine; naturalcrude drug 没有经过加工的有药用价值的天然动、植、矿物药。
06.006采制collection and preparation包括采集、收获、加工、干燥等制备商品中药材的传统技术。
06.007采收期collection period采集药用动、植物的适宜时期。
06.008产地加工processing in production place在产地将鲜药初步加工,使之成为药材的过程。
06.009萌发期germination period植物发芽的阶段。
06.010枯萎期withering period植物失去水分或失去生机的阶段。
06.011贮藏storage药物的贮积保存。
06.012干燥drying药材中水分气化蒸发的过程。
06.013晒干drying in sunshine将药材曝晒使干燥。
06.014阴干drying in shade将药材在通风不见阳光的地方自然干燥。
06.015烘干drying by baking将药材加温干燥,包括焙干、烤干等。
06.016虫蛀rotten due to insect bites仓虫蛀蚀药材使其受损或变质的现象。
06.017霉变mildew and rot中药生霉、腐败、腐烂等现象的统称。
06.018泛油extensive diffusion of oil药材及饮片所含油质溢出表面呈油浸润状态,使质变软、色泽变深黯,味变哈喇的现象。
ACT Math 1-算术法则
•
Q 1: Rewrite the expression 3x2 + 12x3 according to the following laws: Distributive law: Commutative law of addition: Commutative law of multiplication:
•
Act Practice
Q 2: If a and b are not 0: 1. What’s the relationship between a ÷ b and b ÷ a? 2. What’s the relationship between a × b and b × a? 3. What’s the relationship between a – b and b – a? •
二、交换律和结合律 • 什么是交换律?结合律? • 适用于那种运算? • Example 1: 1+2+3+4+5 +6 +7+8+9=? • Example 2: (32×4)×(25×10)×(10×2) = ?
• Example 3: 15 – 7 – 2 ≠ 7 – 15 – 2 15 – 7 – 2 = ? • So you can’t “commute” the numbers in a difference until you convert it to addition. 24 ÷ 3 ÷ 2 ≠ 3 ÷ 2 ÷ 24 24 ÷ 3 ÷ 2 = ? • So you can’t “commute” the numbers in a division until you convert it to multiplica• 适用于那种运算? • Example 1: a ( b + c) = ? • Example 2: 9x2 – 12x = ? 3/b + a/b = ?
DNA的复制课件-2023-2024学年高一下学期生物人教版(2019)必修2
C.这M个子代T₂噬菌体中,含32P的T₂噬菌体所占的比例为1/M
有2个,故其所占的比例为2/M,C 错误。培养足够长的时间,会出现 不含32P而含35S的T₂噬菌体,但一般不会出现含32P的大肠杆菌,D 错 误。
3 、在一个密闭的容器里,用含有同位素13C的脱氧核苷酸合成一个 DNA分子,然后加入普通的含12C的脱氧核苷酸,经n次复制后,所得DNA 分子中含¹2C的脱氧核苷酸链数与含13C的脱氧核苷酸链数之比是
特点 半保留复制;边解旋边复制;多起点复制;双向复制
结果 子链与母链结合,构成两个相同的新的DNA分子
意义 保持了遗传信息的连续性
总结规律
规律1:若 一 个DNA 复制n次。
1.在子代中共形成 2n 个DNA, 其中含有亲代
DNA链的DNA分子数 2 0 2.含有亲代DNA链的DNA分子数占DNA分子总
D . 含 1 0 0 个 碱 基 对 ( 其 中 胞 嘧 啶 6 0 个 ) 的 DNA复 制 3 次 共 需 要 2 8 0 个
2、用 DNA双链均被32P标记的一个T,噬菌体侵染被35S标记的大肠杆菌, 一段时间后释放出出了M个子代T₂噬菌体。下列有关叙述正确的是
()
A.用32P标记T₂噬菌体的方法与用35S标记大肠杆菌的方法相同
It has not eseaped our notice that the specife pairing we have postulated immediately guggests a p⁰ssible copying mechanism for the genetic materiaI.
Full details of the structure,including the conditions assumed in building it,together with a set of co-ordinatos for the atoms,will be published elsewhere.
SAT数学知识点
SAT 数学知识点一Number and Operations Review 一、Properties of integers知道下列说法表示的内容:1. Integers consist of the whole numbers and their negatives (including zero).2. Integers extend infinitely in both negative and positive directions.3. Integers do not include fractions or decimals.4. Negative integers5. Positive integers6. The integer zero is neither positive nor negative.7. odd numbers(奇数)and even numbers(偶数)8. Consecutive integers9. Addition of integers(奇数偶数的加法规则)10. Multiplication of integers(奇数偶数的乘法规则)二、Arithmetic word problems(算术题)三、Number lines(数轴)四、Square and square roots(平方和平方根)五、Fractions and rational numbers(分数与有理数)六、Elementary number theory☆Factors, multiples, and remainders☆Prime numbers七、Ratios, proportions, and percents八、Sequences九、Sets(union, intersection, elements)十、Counting problems Counting problems involve figuring out how many ways you can select or arrange members of groups, such as letters of the alphabet, numbers or menu selections.☆Fundamental counting problems分步完成事件和分类完成事件发生的可能性☆Permutations and combinations (排列组合)基本排列组合理论十一、Logical reasoningThe SAT doesn’t include1.Tedious or long computations2.Matrix operations1.2.3.4.5. 6.7.8.9.10.11.12.13. 14.SAT数学知识点二Algebra and Functions Review Many math questions require knowledge of algebra. This chapter gives you some further practice. You have to manipulate and solve a simple equation for an unknown, simplify and evaluate algebraic expressions, and use algebraic expressions, and use algebraic concepts in problem-solving situations.For the math questions covering algebra and functions content, you should be familiar with all of the following basic skills and topics:一、Operations on algebraic expressions二、Factoring三、Exponents四、Evaluating expressions with exponents and roots五、Solving equations☆Working with “unsolvable” equations☆Solving for one variable in terms of another☆Solving equations involving radical expressions六、Absolute value 七、Direct translation into mathematical expressions八、Inequalities九、Systems of linear equations and inequalities十、Solving quadratic equations by factoring 十一、Rational equations and inequalities 十二、Direct and inverse variation十三、Word problems十四、Functions☆Function notation and evaluation☆Domain and range☆Using new definitions☆Functions as models☆Linear functions: their equations and graphs☆Quadratic functions: their equations and graphs☆Qualitative behavior of graphs and functions☆Translations and their effects on graphsand functionsThe SAT doesn’t include:一、Solving quadratic equations thatrequire the use of the quadraticformula二、Complex numbers三、Logarithms1.2.3.4. 5.6.7.8.9.10.SAT 数学知识点三Geometry and Measurement Review Concept you should to knowFor the mathematics questions covering geometry and measurement concepts, you should be familiar with all of the following basic skills, topics, and formulas:一、Geometric notation二、Points and lines三、Angles in the plane四、Triangles(including special triangles)☆Equilateral triangles☆Isosceles triangles☆Right triangles and the Pythagorean theorem ☆30º-60º-90ºtriangles☆45º-45º-90ºtriangles☆3-4-5 triangles☆Congruent triangles☆Similar triangles☆The triangle inequality五、Quadrilaterals☆Parallelograms☆Rectangles☆Squares六、Areas and Perimeters☆Areas of squares and rectangles☆Perimeters of squares and rectangles☆Area of triangles☆Area of Parallelograms七、Other polygons☆Angles in a polygon☆Perimeter☆Area八、Circles☆Diameter☆Radius☆Arc☆Tangent to a circle☆Circumference☆Area九、Solid geometry☆Solid figures and volumes☆Surface area十、Geometric perception十一、Coordinate geometry☆Slopes, parallel lines, and perpendicular lines☆The midpoint formula☆The distance formula十二、TransformationsThe SAT doesn’t include:一、Formal geometric proofs二、Trigonometry三、Radian measure1.2.3.4.5.6. 7.8.9.SAT 数学知识点四Data Analysis, Statistics andProbability ReviewFor the math questions covering data analysis, statistics and probability concepts, you should be familiar with all of the following basic skills and topics:一、Data interpretation二、Statistics☆Arithmetic mean☆Median☆Mode☆Weighted average☆Average of algebraic expression☆Using average to find missing numbers三、Elementary probability四、Geometric probabilityThe SAT doesn’t include:四、Computation of standard deviation 1.2.3.4.5. 6.7.8.Word Problems1.2.3.4. 5-75.6.7.1112。
代数学教程英文版
代数学教程英文版Algebra Tutorial (English Version) Chapter 1: Introduction to Algebra- What is Algebra?- Algebraic Operations- Algebraic Expressions- Simplifying Expressions- Evaluating ExpressionsChapter 2: Solving Equations- Solving Linear Equations- Solving Quadratic Equations- Solving Systems of Equations- Solving Exponential Equations- Solving Radical EquationsChapter 3: Graphing and Functions- Cartesian Coordinate System- Graphing Linear Equations- Graphing Quadratic Equations- Graphing Exponential Functions- Domain and Range of Functions Chapter 4: Polynomials- Introduction to Polynomials- Adding and Subtracting Polynomials- Multiplying Polynomials- Factoring Polynomials- Synthetic DivisionChapter 5: Rational Expressions- Simplifying Rational Expressions- Multiplying and Dividing Rational Expressions - Adding and Subtracting Rational Expressions- Complex Fractions- Rational EquationsChapter 6: Exponents and Radicals- Laws of Exponents- Simplifying Exponential Expressions- Properties of Radicals- Simplifying Radicals- Rationalizing DenominatorsChapter 7: Inequalities- Solving Linear Inequalities- Solving Quadratic Inequalities- Solving Rational Inequalities- Compound Inequalities- Absolute Value InequalitiesChapter 8: Sequences and Series- Arithmetic Sequences- Geometric Sequences- Arithmetic Series- Geometric Series- Infinite SeriesChapter 9: Logarithmic and Exponential Functions- Exponential Functions- Logarithmic Functions- Properties of Logarithms- Solving Exponential Equations with Logarithms- Exponential Growth and DecayChapter 10: Matrices and Determinants- Introduction to Matrices- Matrix Operations- Matrix Inverses- Determinants- Solving Systems of Linear Equations with Matrices Chapter 11: Complex Numbers- Introduction to Complex Numbers- Operations with Complex Numbers- Complex Conjugates- Complex Plane- Complex Roots of Quadratic EquationsChapter 12: Conic Sections- Introduction to Conic Sections- Circles- Parabolas- Ellipses- HyperbolasChapter 13: Word Problems and Applications- Age Problems- Mixture Problems- Distance, Rate, and Time Problems - Interest Problems- Work Problems。
TCAD Sentaurus introduction 2014
Sentaurus Lithography Sentaurus Topography
Structure Editing
Sentaurus Workbench Sentaurus Structure Editor
Sentaurus Device
Device and Interconnect Simulation
• New Technology Support
– More Moore
– – FinFET, FDSOI, III-V, etc. Analog/RF, CIS, solar, power (Si, SiC, GaN), TSV, etc.
– More than Moore
• 3D Support (FinFET, NVM, Power, SRAM, CIS)
Diffusion Model Hierarchy
• • • • • • • Constant (constant diffusion coefficient) Fermi (point defects equation not solved, defects in equilibrium) Charged Fermi (same as Fermi+total dopant flux is due to dopant-defect pairs) Pair (dopant-defects pairs are in local equilibrium with dopant and defect concentrations) Charged Pair (same as Pair+reaction rates are state charge dependent) React (incl.defects, rates are not charge state dependent) Charged React (same as React+mobile charged dopant-defects)
非等位基因
非等位基因概述非等位基因是指同一基因座上的不同等位基因。
等位基因是指在某个给定的基因座上,可以存在多种不同的变体。
每个个体继承了一对等位基因,一对等位基因可能会导致不同的表型表达。
非等位基因的存在使得遗传学研究更加复杂,因为不同的等位基因会对个体的表型产生不同的影响。
背景在生物学中,基因座是指染色体上一个特定的位置,该位置上的基因决定了某个特征的表达方式。
每个基因座上可以有多种不同的等位基因。
等位基因是指在某个特定基因座上的不同基因变体。
每个个体都会继承一对等位基因,通过这对等位基因的不同组合,决定了个体的表型。
然而,并非所有基因座上的等位基因都具有相同的表现型。
非等位基因的影响非等位基因的存在导致不同等位基因会对个体表型产生不同的影响。
有些非等位基因会表现出显性效应,也就是说,当个体继承了一个突变的等位基因时,即使同时继承了一个正常的等位基因,但显性效应会使得突变的等位基因的表型表达得到体现。
相反,有些非等位基因会表现出隐性效应,当个体继承了两个突变的等位基因时,才会表现出突变的表型。
除了显性和隐性效应之外,非等位基因还可能发生两种其他类型的表型效应。
一种是共显效应,当个体继承了两个不同的突变等位基因时,在表型表达上会表现出一种新的特征,这个特征并不是单个突变等位基因所能导致的。
另一种是部分显性效应,当个体继承了两个不同的突变等位基因时,表型表达将介于两个单独突变等位基因的表型之间。
重组和非等位基因重组是指两个不同的染色体交换部分基因序列的过程。
在重组的过程中,非等位基因可能会发生改变,导致新的等位基因组合形成。
这一过程使得非等位基因的表型效应更加复杂,因为新的等位基因可能将不同基因座的效应组合起来。
非等位基因的重要性非等位基因对生物的适应性和多样性起着重要作用。
通过对等位基因的各种组合的研究,人们可以更好地理解基因与表型之间的关系,并揭示遗传变异对物种适应环境的重要性。
总结非等位基因是指同一基因座上的不同等位基因。
7 表达式与赋值语句
1-16
Type Conversions: Mixed Mode
• A mixed-mode expression is one that has operands of different types • A coercion(强制转换) is an implicit type conversion • Disadvantage of coercions:
1-2
Introduction
• Expressions are the fundamental means of specifying computations in a programming language • To understand expression evaluation, need to be familiar with the orders of operator and operand evaluation • Essence of imperative languages is dominant role of assignment statements
average = (count == 0)? 0 : sum / count
– Evaluates as if written like
if (count == 0) average = 0 else average = sum /count
1-10
Arithmetic Expressions: Operand Evaluation Order
– When a function referenced in an expression alters another operand of the expression; e.g., for a parameter change:
布地奈德对变应性鼻炎嗅觉障碍的干预作用探讨
中外医疗China &Foreign MedicalTreatment嗅觉是一项十分重要的人体感觉,在人们生活中起着重要作用。
有相当部分人存在着嗅觉障碍,曾经有150万人接受了嗅觉调查,其中永久性嗅觉丧失的人占1.2%,暂时性嗅觉丧失的人占62.4%,临床嗅觉障碍可能是由于多种因素造成的[1]。
变应性鼻炎在耳鼻咽喉科是常见疾病之一,也是主要的导致临床上嗅觉障碍的因素之一。
现今,流行病学研究的趋向指出,人群中,患有变应性鼻炎的患者高达10%~30%[2]。
常见的变应性鼻炎伴随症状即为嗅觉障碍,很多报道均提出鼻部变态反应关系着嗅觉的丧失或是减退[3]。
Rombaux 等人[4]报道称有15%~20%嗅觉减退是由变应性鼻炎导致。
为了探讨布地奈德对变应性鼻炎嗅觉障碍的干预作用,现回顾性分析2009年9月—2011年8月来该院治疗的变应性鼻炎嗅觉障碍患者30例得临床资料,将结果报道如下。
1资料与方法1.1一般资料该文选择了来该院治疗的变应性鼻炎嗅觉障碍患者30例,其中男14例,女16例,年龄为17~59岁。
1.2方法患者在接受治疗前,通过T&T 嗅觉检查及对嗅觉事件有关点位进行记录,评估嗅觉功能。
之后予以布地奈德鼻腔雾化吸入,治疗15d,1次/d。
每治疗5次后,通过T&T 嗅觉检查对嗅觉功能进行复查。
在雾化吸入15次后对T&T 的嗅觉识别阈及嗅觉事件有关点位进行同时复查。
1.3统计方法该研究中所得数据采用统计学软件包SPSS15.0进行统计学方面的分析,所有组间数据应用χ2检验。
2结果所选鼻炎嗅觉障碍患者在接受鼻腔雾化治疗后,8例(26.7%)患者恢复了正常的嗅觉功能,15例(50%)患者的嗅觉功能得到显著改善,5例(16.7%)患者的嗅觉功能得到轻微改善,2例患者治疗无效,总有效率为93.3%。
见表1。
3讨论变应性鼻炎是在特应性个体与致敏原接触后,由于递质释放IgE 介导,且多个种类的免疫活性细胞及细胞因子等均有介入的慢性鼻黏膜炎症的反应性疾病。
七年级数学英语知识点总结
七年级数学英语知识点总结1. Basic arithmetic operations- Addition, subtraction, multiplication, and division- Order of operations (PEMDAS - Parentheses, Exponents, Multiplication/Division, Addition/Subtraction)2. Fractions- Addition, subtraction, multiplication, and division of fractions- Equivalent fractions- Simplifying fractions- Mixed numbers and improper fractions3. Decimals- Addition, subtraction, multiplication, and division of decimals- Comparing and ordering decimals- Converting between fractions and decimals4. Percentages- Finding percentages of a number- Converting between percentages and decimals- Applications of percentages in real-life situations5. Ratios and Proportions- Writing ratios in simplest form- Solving proportions- Using proportions in solving real-world problems6. Algebraic Expressions- Evaluating algebraic expressions- Simplifying algebraic expressions- Solving basic linear equations7. Geometry- Recognizing and naming different types of angles- Understanding basic properties of triangles, quadrilaterals, and other polygons- Calculating the perimeter and area of 2D shapes- Understanding the properties of different types of 3D shapes, such as cubes, prisms, and pyramids8. Measurement- Converting between different units of measurement (length, mass, volume, time)- Calculating the area and volume of irregular shapes- Understanding the concepts of area, perimeter, and volume9. Data Analysis and Probability- Reading and interpreting different types of graphs (bar graphs, line graphs, histograms, etc.)- Calculating mean, median, and mode of a set of data- Understanding basic concepts of probability and using them to solve problems10. Real-Life Applications- Applying mathematical concepts to real-life situations, such as budgeting, shopping, and understanding statistics- Solving word problems using mathematical concepts learned in classIn conclusion, the seventh-grade mathematics curriculum is designed to provide students with a solid foundation in basic arithmetic, fractions, decimals, percentages, algebraic expressions, geometry, measurement, data analysis, and probability. These knowledge points are essential for students to build upon as they progress through their mathematical education. By mastering these topics, students will be well-prepared for more advanced math concepts in the future.。
variables and arithmetic expressions中的知识点 -回复
variables and arithmetic expressions中的知识点-回复variables and arithmetic expressions中的知识点,主题:变量和算术表达式变量和算术表达式是编程中的基础概念。
在任何编程语言中,我们都需要使用变量来存储和操作数据,同时使用算术表达式进行计算。
本文将一步一步回答与变量和算术表达式相关的重要问题。
一、什么是变量?变量是用来存储和表示一个值的名称。
在编程中,我们可以给一个变量分配一个值,并在程序运行过程中对其进行操作和修改。
变量可以是不同的类型,例如整数、浮点数、字符串等。
为了定义一个变量,一般需要指定变量的名称和类型。
在大多数编程语言中,变量声明的语法形式是:类型变量名。
例如,在Python中,声明一个整数类型的变量count,可以使用以下语句:int count;二、如何给变量赋值?变量赋值是将一个值存储到变量中的过程。
通过赋值操作,我们可以改变变量的值。
变量赋值的语法形式是:变量名= 值。
例如,将整数10赋值给变量count,可以使用以下语句:count = 10;三、如何使用变量进行计算?变量的一个重要作用是进行计算。
使用变量可以使我们的程序更加灵活和可扩展。
通过将变量与算术运算符组合使用,我们可以进行各种数学运算,如加法、减法、乘法和除法。
常见的算术运算符包括加号(+)、减号(-)、星号(*)和斜杠(/)。
我们可以使用这些运算符对变量进行加减乘除运算。
例如,使用变量count 存储一个整数值,并将其与另一个整数值相加,可以使用以下语句:result = count + 5;四、如何使用括号来改变计算顺序?在编写复杂的算术表达式时,可以使用括号来改变计算顺序。
括号内的表达式会首先被计算,然后再根据运算符的优先级依次计算其他部分。
常用的算术运算符的优先级:括号> 幂运算> 乘法和除法> 加法和减法。
具有更高优先级的运算符将在具有较低优先级的运算符之前进行计算。
variables and arithmetic expressions中的知识点 -回复
variables and arithmetic expressions中的知识点-回复Variables and Arithmetic Expressions中的知识点介绍:在计算机编程中,变量和算术表达式是非常基础的概念。
变量用于存储数据,而算术表达式则用于对这些数据进行计算和操作。
本文将逐步介绍Variables and Arithmetic Expressions中的主要知识点,包括变量的定义和使用、算术表达式的构建和求值等。
通过阅读本文,读者将会对这些概念有一个全面的理解,为进一步学习编程打下坚实的基础。
1. 变量的定义和使用在编程中,变量用于存储数据,并可以通过变量名进行访问和操作。
变量的定义一般包括两个步骤:声明和初始化。
声明是为变量分配内存空间,而初始化则是为变量赋予一个初始值。
下面是一个示例:pythoncount = 5在上面的代码中,`count`是一个变量名,`5`是它的初始值。
通过这个示例可以看出,变量名可以是任意合法的标识符,而初始值可以是任何合法的表达式。
变量的使用可以通过变量名进行,例如:pythonprint(count)这样可以将变量`count`的值打印出来。
2. 算术表达式的构建与求值算术表达式由运算符和操作数组成,可以进行各种数学运算。
常见的运算符包括加法`+`、减法`-`、乘法`*`、除法`/`等。
操作数可以是常数、变量或者其他表达式。
例如:pythonx = 5y = 3z = x + y在上面的代码中,`z`的值将会是`8`,因为`x`和`y`分别是`5`和`3`,所以`x+y`等于`8`。
在算术表达式中,运算符遵循一定的优先级。
常见的数学优先级规则(从高到低)有:- 括号:括号中的表达式首先计算;- 乘法和除法:乘法和除法在加法和减法之前计算;- 加法和减法:从左到右依次计算。
例如:pythonresult = 1 + 2 * 3 - 4 / 2在上面的例子中,`2 * 3`先计算为`6`,`4 / 2`再计算为`2`,最后`1 + 6 - 2`计算为`5`,所以`result`的值将会是`5`。
variables and arithmetic expressions中的知识点 -回复
variables and arithmeticexpressions中的知识点 -回复【variables and arithmetic expressions 中的知识点】在编程中,变量是一个存储数据的容器。
它们用于存储各种类型的数据,如数字、字符串、布尔值等。
这些数据可以通过使用算术表达式进行计算和操作。
本文将深入探讨变量和算术表达式在编程中的应用,并逐步回答一些与之相关的问题。
首先,让我们从变量的定义和声明开始。
一、变量的定义和声明在大多数编程语言中,变量的定义包含以下步骤:1. 选择一个合适的变量名:变量名应具有描述性,并且能够清楚地表示其内容。
它通常由字母、数字和下划线组成,并且以字母或下划线开头。
2. 声明变量:声明变量是指在程序中告诉编译器或解释器需要创建一个特定类型的变量。
这可以通过使用合适的关键字或运算符来完成。
例如,在C语言中,可以使用以下语法声明一个整数变量:int myVariable;3. 初始化变量:初始化变量是指给变量赋予一个初始值。
这可以在声明变量时进行,也可以在稍后的代码中完成。
例如,可以在声明变量的同时初始化它,如下所示:int myVariable = 5;二、算术表达式算术表达式是使用算术运算符和操作数进行计算和操作的表达式。
它可以包括基本的算术操作(如加、减、乘、除)以及更复杂的操作,如取余数、幂等等。
以下是一些常见的算术运算符:1. 加法:表示为"+"2. 减法:表示为"-"3. 乘法:表示为"*"4. 除法:表示为"/"5. 取余数:表示为""6. 幂运算:表示为"" 或"^"(取决于编程语言)算术表达式可以由变量、数字常量和运算符组成。
例如,以下是一个使用算术表达式的简单示例:int a = 5;int b = 2;int result = a + b;在上面的示例中,我们声明了两个整数变量(a和b),并初始化它们为5和2。
如何讲解初中七年级整式运算中的整体代入求值问题
如何讲解初中七年级整式运算中的整体代入求值问题When teaching seventh grade algebraic expression evaluations, it is important to first ensure students have a solid understanding of basic arithmetic operations. By building a strong foundation in arithmetic, students will be better equipped to tackle more complex algebraic concepts such as substituting variables with given values. It is crucial to emphasize the step-by-step process of evaluating expressions, breaking down each operation and substitution so that students can follow along and understand the reasoning behind each step.在教授七年级代数表达式求值时,首先要确保学生对基本的算术运算有扎实的理解。
通过在算术方面打下坚实的基础,学生将更有能力应对更复杂的代数概念,比如用给定的值代入变量。
强调逐步评估表达式的过程至关重要,逐步分解每个运算和替换步骤,以便学生能够跟上并理解每个步骤背后的推理。
One effective way to introduce the concept of whole number substitution in algebraic expressions is through real-world examples and practical applications. By relating algebraic expressions toeveryday scenarios or problems, students can see the relevance and importance of evaluating expressions with given values. For instance, presenting a word problem where a student needs to calculate the total cost of groceries by substituting prices for different items in an expression can help students grasp the concept of whole number substitution and its practical implications.介绍代数表达式中整数代入的概念的一种有效方式是通过真实世界的例子和实际应用。
初中化简求值的方法和技巧
初中化简求值的方法和技巧Simplifying and evaluating expressions is a fundamental skill in middle school mathematics. It requires a solid understanding of basic arithmetic operations such as addition, subtraction, multiplication, and division. By simplifying and evaluating expressions, students are able to solve problems more efficiently and accurately. This skill also lays the foundation for more advanced mathematics concepts in high school and beyond.化简和求值表达式是初中数学中的一项基本技能。
它需要对基本算术运算,如加法、减法、乘法和除法有扎实的理解。
通过化简和求值表达式,学生能够更有效和准确地解决问题。
这项技能还为高中及更高阶段的数学概念打下基础。
One key method for simplifying and evaluating expressions is the use of the order of operations, also known as PEMDAS. PEMDAS stands for Parentheses, Exponents, Multiplication and Division (from left to right), and Addition and Subtraction (from left to right). Following the order of operations ensures that expressions are simplified in a consistent and accurate manner. This method helpsstudents avoid common errors and confusion when simplifying complex expressions.化简和求值表达式的一个关键方法是使用运算顺序,也称为PEMDAS。
variables and arithmetic expressions中的知识点 -回复
variables and arithmetic expressions中的知识点-回复Variables and Arithmetic ExpressionsIn computer programming, variables and arithmetic expressions are fundamental concepts that form the building blocks of any program. Understanding these concepts is crucial for writing effective and efficient code. In this article, we will explore the key points related to variables and arithmetic expressions and provide a step-by-step explanation to ensure a clear understanding.1. Introduction to Variables1.1 What are variables?Variables are symbolic representations of memory locations that hold values. They act as containers for storing data that the program manipulates during its execution. Each variable has a name, a data type, and a value.1.2 Declaring and Initializing VariablesTo use a variable, it must be declared, which involves specifying its name and data type. The data type determines the kind of values that can be stored in the variable. Initialization involves giving an initial value to a variable at the time of declaration.2. Understanding Arithmetic Expressions2.1 What are arithmetic expressions?Arithmetic expressions involve mathematical operations performed on variables, constants, or a combination of both. These expressions evaluate to a single value.2.2 OperatorsOperators are symbols that represent specific operations to be performed on operands (variables, constants). Examples of operators include + (addition), - (subtraction), * (multiplication), / (division), etc.3. Evaluation of Arithmetic Expressions3.1 Operator Precedence and AssociativityArithmetic expressions follow certain rules regarding the order in which operators will be evaluated. This is determined by the operator precedence and associativity. Precedence dictates the order of evaluation while associativity determines the order in which operators of the same precedence are evaluated.3.2 Parentheses and OperatorsParentheses can be used to override the default order of evaluation. Expressions within parentheses are always evaluated first. Operators follow a predefined precedence hierarchy.3.3 Order of Evaluation ExampleLet's consider an example: x = 5 + 3 * 2 - 1.According to operator precedence, multiplication takes precedence over addition and subtraction. Therefore, 3 * 2 is evaluated first, resulting in 6. The expression now becomes x = 5 + 6 - 1.Next, addition is evaluated, which gives 11. Finally, subtraction is performed, resulting in a final value of 10 for x.4. Variables in Arithmetic Expressions4.1 Using Variables in ExpressionsVariables can be used in arithmetic expressions just like constants. For example, x = 5 + variable, where variable is another variable holding a value.4.2 Updating Variable ValuesThe value of a variable can be updated using assignment operators such as = (simple assignment), += (add and assign), -= (subtract and assign), *= (multiply and assign), etc. These operators modify the current value of the variable by performing the specified operation.5. Conclusion and SummaryVariables and arithmetic expressions are vital components of any programming language. They allow us to store and manipulate data efficiently. In this article, we discussed the concept of variables, how to declare and initializethem, and the importance of understanding arithmetic expressions. We also explored the role of operators, operator precedence, and associativity in evaluating arithmetic expressions. Lastly, we learned how to use variables in arithmetic expressions and update their values. Mastering these concepts will enable you to write powerful and efficient programs.。
可待因的特征离子峰
可待因的特征离子峰下载温馨提示:该文档是我店铺精心编制而成,希望大家下载以后,能够帮助大家解决实际的问题。
文档下载后可定制随意修改,请根据实际需要进行相应的调整和使用,谢谢!并且,本店铺为大家提供各种各样类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,如想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by the editor. I hope that after you download them, they can help yousolve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you!In addition, our shop provides you with various types of practical materials, such as educational essays, diary appreciation, sentence excerpts, ancient poems, classic articles, topic composition, work summary, word parsing, copy excerpts,other materials and so on, want to know different data formats and writing methods, please pay attention!可待因是一种常见的镇痛药物,也被广泛用于缓解咳嗽和感冒症状。
甲基化中文
结果实验组孕鼠产下的仔鼠大多数在身体的不同部位出现了大小不等的 棕色斑块,甚至出现了以棕褐色为主要毛色的小鼠。而对照组孕鼠的仔鼠大 多数为黄色。分析表明喂以富甲基饲料的孕鼠所产仔鼠的IAP所含CpG岛的甲
基化平均水平远高于对照组,转录调控区的高甲基化使原该呈异位表达的基
因趋于沉默,毛色也趋于棕褐色。
2013年8月19日
23
一、DNA甲基化
DNA全新甲基化
DNA主动去甲基化
DNA甲基化状态的保持
2013年8月19日
24
二、组蛋白修饰
2013年8月19日
25
二、组蛋白修饰
组蛋白修饰是表观遗传研究的重要内容。 组蛋白的 N端是不稳定的、无一定组织的亚单位,其
延伸至核小体以外,会受到不同的化学修饰,这种修
启动子区域的CpG岛一般是非甲基化状态的,其非甲基 化状态对相关基因的转录是必须的。
目前认为基因调控元件(如启动子)的CpG岛中发生5mC 修饰会在空间上阻碍转录因子复合物与DNA的结合。因 而DNA甲基化一般与基因沉默相关联。
2013年8月19日
18
一、DNA甲基化
2013年8月19日
19
2013年8月19日
3
概
Definition of Epigenetics
述
Any changes in gene expression resulting from either a DNA and chromatin modification or resulting from a post posttranscriptional mechanism. However, it does not reflect a difference in the DNA code。
病因英语的学术表达
病因英语的学术表达病因学是研究疾病起因和发展机制的学科,关注疾病的形成原因和发病机制。
在学术界,对病因的研究和讨论通常需要使用英语进行学术表达。
首先,研究病因需要明确的定义,即病因学家需要准确定义特定疾病的起源和发展过程。
在学术论文中,通常会使用术语“etiopathogenesis”或“pathogenesis”来描述疾病的起因和发展机制。
这些术语在学术界中被广泛接受,并用于描述研究的目的和方法。
其次,研究病因需要进行系统的实验和观察,以收集证据来支持研究假设。
在学术表达中,常用的表达方式包括“experimental evidence”(实验证据)和“observational studies”(观察研究)。
这些表达方式用于描述研究者通过实验或观察收集到的数据和结果。
除了实验和观察,病因研究还需要综合分析和解释收集到的数据。
在学术论文中,常用的表达方式包括“data analysis”(数据分析)和“data interpretation”(数据解释)。
这些表达方式用于描述研究者对所收集到的数据进行统计分析和解释的过程。
此外,研究病因还需要进行相关文献综述和讨论。
在学术论文中,常用的表达方式包括“literature review”(文献综述)和“discussion”(讨论)。
这些表达方式用于描述研究者对已有文献进行综述和对研究结果进行讨论的情况。
最后,研究病因通常需要提出假设并进行验证。
在学术表达中,常用的表达方式包括“hypothesis”(假设)和“validation”(验证)。
这些表达方式用于描述研究者提出假设并通过实验证据来验证假设的过程。
综上所述,研究病因的学术表达需要准确定义研究目的和方法,并使用恰当的术语来描述研究过程和结果。
通过使用合适的表达方式,可以确保学术论文的准确性和权威性,并促进学术界对病因研究的理解和应用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Evaluating Arithmetic Expressions using TreeContraction:A Fast and Scalable Parallel Implementation for Symmetric Multiprocessors(SMPs)(Extended Abstract)David A.Bader,Sukanya Sreshta,and Nina R.Weisse-BernsteinDepartment of Electrical and Computer EngineeringUniversity of New Mexico,Albuquerque,NM87131USAAbstract.The ability to provide uniform shared-memory access to a significantnumber of processors in a single SMP node brings us much closer to the idealPRAM parallel computer.In this paper,we develop new techniques for design-ing a uniform shared-memory algorithm from a PRAM algorithm and present theresults of an extensive experimental study demonstrating that the resulting pro-grams scale nearly linearly across a significant range of processors and acrossthe entire range of instance sizes tested.This linear speedup with the numberof processors is one of thefirst ever attained in practice for intricate combinato-rial problems.The example we present in detail here is for evaluating arithmeticexpression trees using the algorithmic techniques of list ranking and tree contrac-tion;this problem is not only of interest in its own right,but is representative ofa large class of irregular combinatorial problems that have simple and efficientsequential implementations and fast PRAM algorithms,but have no known ef-ficient parallel implementations.Our results thus offer promise for bridging thegap between the theory and practice of shared-memory parallel algorithms.Keywords:Expression Evaluation,Tree Contraction,Parallel Graph Algorithms, Shared Memory,High-Performance Algorithm Engineering.1IntroductionSymmetric multiprocessor(SMP)architectures,in which several processors operate in a true,hardware-based,shared-memory environment and are packaged as a single machine,are becoming commonplace.Indeed,most of the new high-performance com-puters are clusters of SMPs having from2to over100processors per node.The ability to provide uniform-memory-access(UMA)shared-memory for a significant number of processors brings us much closer to the ideal parallel computer envisioned over20years2 D.A.Bader,S.Sreshta,and N.R.Weisse-Bernsteinago by theoreticians,the Parallel Random Access Machine(PRAM)(see[13,19])and thus may enable us at last to take advantage of20years of research in PRAM algorithms for various irregular computations.Moreover,as supercomputers increasingly use SMP clusters,SMP computations will play a significant role in supercomputing.For instance, much attention has been devoted lately to OpenMP[17],that provides compiler direc-tives and runtime support to reveal algorithmic concurrency and thus takes advantage of the SMP architecture;and to mixed-mode programming,that combines message-passing style between cluster nodes(using MPI)and shared-memory style within each SMP(using OpenMP or POSIX threads).While an SMP is a shared-memory architecture,it is by no means the PRAM used in theoretical work—synchronization cannot be taken for granted and the number of pro-cessors is far smaller than that assumed in PRAM algorithms.The significant feature of SMPs is that they provide much faster access to their shared-memory than an equivalent message-based architecture.Even the largest SMP to date,the recently delivered106-processor Sun Fire Enterprise15000(E15K),has a worst-case memory access time of 450ns(from any processor to any location within its576GB memory);in contrast,the latency for access to the memory of another processor in a distributed-memory archi-tecture is measured in tens ofµs.In other words,message-based architectures are two orders of magnitude slower than the largest SMPs in terms of their worst-case memory access times.The largest SMP architecture to date,the Sun E15K[5](a system three-tofive-times faster than its predecessor,the E10K[4]),uses a combination of data crossbar switches, multiple snooping buses,and sophisticated cache handling to achieve UMA across the entire memory.Of course,there remains a large difference between the access time for an element in the local processor cache(around10ns)and that for an element that must be obtained from memory(at most450ns)—and that difference increases as the number of processors increases,so that cache-aware implementations are even more important on large SMPs than on single workstations.Fig.1illustrates the memory access be-Sun Enterprise4500Sun Enterprise10000Fig.1.Memory access(read)time using one400MHz UltraSPARC II processor of a Sun E4500(left)and an E10K(right)as a function of array size for various strides.Evaluating Arithmetic Expressions using Tree Contraction:An SMP Implementation3 havior of the Sun E10K(right)and its smaller sibling,the E4500(left),using a single processor to visit each32-bit node in a circular array.We chose patterns of access with afixed stride,in powers of2(labeled C,stride),as well as a random access pattern (labeled R).The data clearly show the effect of addressing outside the on-chip cache (thefirst break,at a problem size of size greater than212words,or16KB—the size of L1cache)and then outside the L2cache(the second break,at a problem size of greater than220words,or4MB).The uniformity of access times was impressive—standard de-viations around our reported means are well below10percent.Such architectures make it possible to design algorithms targeted specifically at SMPs.Arithmetic Expression Evaluation(AEE)has important uses in a wide-range of problems ranging from computer algebra and evaluation of logical queries to compiler design.Its classical parallel formulation uses the technique of tree contraction when the expression is represented as a tree with a constant at each leaf and an operator at each internal vertex.AEE involves computing the value of the expression at the root of the tree.Hence,AEE is a direct application of the well studied tree contraction technique, a systematic way of shrinking a tree into a single vertex.Miller and Reif[16]designed an exclusive-read exclusive-write(EREW)PRAM al-gorithm for evaluating any arithmetic expression of size n,which runs in O log n time using O n processors(with O n log n work).Subsequently Cole and Vishkin[6]and Gibbons and Rytter[8]independently developed O log n-time O n log n-processors (with O n work)EREW PRAM algorithms.Kosaraju and Delcher[15]developed a simplified version of the algorithm in[8]which runs in the same time-processor bounds(O log n-time O n log n-processors(with O n work)on the EREW PRAM). Recently,several researchers in[3,7]present theoretic observation that this classical PRAM algorithm for tree contraction on a tree T with n vertices can run on the Coarse-Grained Multicomputer(CGM)parallel machine model with p processors in O log p communication rounds with O n4 D.A.Bader,S.Sreshta,and N.R.Weisse-Bernstein3The Expression Evaluation ProblemAEE is the problem of computing the value of an expression that is represented as a tree with a constant at each leaf and an operator at each internal vertex of the tree.For a parallel formulation,we use the tree contraction technique to shrink the tree to its root. For simplicity,our study is restricted to expressions with binary associative operators. Hence,the trees are binary with each vertex u excluding the root of the tree having only one sibling sib u.This technique can also be used with expressions having non-binary operators by considering unary operators with their identity elements and converting general trees resulting from ternary operators to binary trees as a preprocessing phase of the algorithm[13].For the sake of discussion and without loss of generality,let us assume that the internal vertices contain either the addition operator or the multipli-cation operator.The simple parallel solution of evaluating each subexpression(two sibling leaves and their parent)in parallel and setting the parents of the vertices evaluated equal to the value of the subexpression until the root is reached works well when the tree is well-balanced.In the extreme case of a“caterpillar”tree,when the tree is a long chain with leaves attached to it,this solution requires a linear number of iterations similar to the sequential solution.Hence,an optimal solution should ease the above restriction that each vertex must be fully evaluated before its children can be removed.The rake operation is used to remove the vertices from the tree,thus contracting it.Let T be a rooted binary tree with root r and let p v,sib v and p p v represent the parent,sibling,and grandparent of a vertex v respectively.The rake operation when applied to a leaf v(p v r)of the tree removes v and p v from T and connects sib v to p p v.The rake operation is illustrated in Fig.2.p(p(v))p(p(v))Raking Leaf vp(v)sib(v)Fig.2.Rake of leaf v:removes vertices v and p v from the tree and makes the sibling sib v of vertex v,the child of grandparent p p v of v.The value of a vertex v,denoted by val v is defined as the value of the subex-pression(subtree rooted)at v.The value of a leaf is simply the constant value stored in the leaf.To accomplish partial evaluation,each vertex v of the tree T is associ-ated with a label a v b v such that the contribution of a vertex to its parent’s value is given by the expression a v val v b v.The label of each vertex is initialized to10. Let u be an internal vertex of the tree such that u holds the operatorand has left child v and right child w.The value of vertex u is given by val uEvaluating Arithmetic Expressions using Tree Contraction:An SMP Implementation5 a v val v b v u a w val w b w.The value contributed by u to the vertex p u is given by E a u val u b u a u a v val v b v u a w val w b w b u.Say v is the left leaf of u.On raking leaf v,E is simplified to a linear expression in the unknown value of w,namely val w.The labels of w are then updated to maintain the value contributed to p u.The augmented rake operation that modifies the sibling labels as described above maintains the value of the arithmetic expression.The original binary tree is contracted to a three-vertex tree with root r and two leaves v1and v2by apply-ing the augmented rake operation repeatedly and concurrently to the tree.The value of the arithmetic expression is then given by the value of the root which is given byval T val r a v1val v1b v1r a v2val v2b v2.The next section formally describes the PRAM algorithm in detail.4Review of the PRAM Algorithm for Expression EvaluationThe PRAM algorithm consists of three main steps.Thefirst step identifies and labels the leaves.The second step contracts the input binary tree to a three-vertex tree using the augmented rake operation.The resultant tree contains the root and the left-and right-most leaves of the original tree with labels suitably updated to maintain the value of the arithmetic expression.The third step computes thefinal value of the arithmetic expression from the three-vertex binary tree as described in the previous section.The concurrent rake of two leaves that are siblings or whose parents are adjacent must be avoided as this would lead to an inconsistent resultant structure.Hence,a careful appli-cation of the rake operation for tree contraction is required.Alg.1evaluates a given arithmetic expression using the PRAM model(from[13]). After Step(2)of Alg.1,we have a three-vertex tree T with a root r holding an operator r and two leaves,the left-and right-most leaves,u and v containing the constants c uand c v with labels a u b u and a v b v,respectively.These labels hold the relevant in-formation from the vertices that have been raked.Hence,the value of the subexpression at the root r is the value of the given arithmetic expression.This value is given by val T val T val r a u c u b u r a v c v b v(1) Alg.1ensures that two leaves that are siblings or whose parents are adjacent are never raked concurrently(for proof refer to[15]).Hence the rake operations are applied correctly and the algorithm is correct.Step(1),labeling the leaves of the tree,can be implemented using the Euler tour technique and using the optimal list ranking algo-rithm to obtain the labels.Hence this step takes O log n time using O n operations. Given an array A,A odd and A even(containing the odd and even indexed elements of A respectively)can be obtained in O1time using a linear number of operations.The augmented rake operations that modify the sibling labels in Steps(2.1)and(2.2)are done in parallel and hence take O1time each.Step(2.3)takes O1time.The num-ber of operations required by each iteration is O A,where A represents the current size of the array A.Since the size of the array A decreases by half each iteration,the total number of operations required by Step(2)is O∑i n2i O n.Hence,this step takes O log n time using O n operations.Finally,computing the value of the6 D.A.Bader,S.Sreshta,and N.R.Weisse-BernsteinData:(1)A rooted binary tree T such that each vertex v has the labelsa vb v initialized to10,(2)each non-leaf vertex has exactly twochildren,and(3)for each vertex different from the root,the parentp v,the sibling sib v and an indication if it is a left or right child ofits parent.Result:The value of the arithmetic expression represented by the tree Tbegin2.1.Apply the augmented rake operation that modifies the sibling’s la-bels concurrently to all the elements of A odd that are left children.2.2.Apply the augmented rake operation that modifies the sibling’s la-bels concurrently to the rest of the elements in A odd.2.3.Set A:A even.pute the value of the arithmetic expression from the three-vertex bi-nary tree.endAlgorithm1:PRAM Algorithm for AEEarithmetic expression from the three-vertex binary tree in Step(3)takes O1time and O1work.Therefore,arithmetic expression evaluation takes O log n time using O n operations on an EREW PRAM.2.for phase i from0to log2n2do2.1.Apply the augmented rake operation that modifies the sibling’s labelsconcurrently to all the leaves in locations2i32i52i72i of A that areleft children.2.2.Apply the augmented rake operation that modifies the sibling’s labelsconcurrently to all the leaves in locations2i32i52i72i of A that areright children.Algorithm2:Modified Step(2)of PRAM Algorithm for AEENote that the rake operation used for contracting the tree does not create any new leaves.Hence,the data copy in Step(2.3)of Alg.1can be completely avoided by replacing Step(2)with Alg.2.For further details refer to[15].This modified algorithm has the same complexity bounds as the original algorithm.Evaluating Arithmetic Expressions using Tree Contraction:An SMP Implementation7 5SMP Algorithm for AEEThis section begins with the description of the programming environment used for the implementation.The methodology for converting a PRAM algorithm to a practical SMP algorithm is then described.The actual implementation details are then given.This sec-tion ends with the description of the cost model used for analyzing the SMP algorithm and a thorough analysis of the algorithm.SMP Libraries Our practical programming environment for SMPs is based upon the SMP Node Library component of SIMPLE[1],that provides a portable framework for describing SMP algorithms using the single-program multiple-data(SPMD)program style.This framework is a software layer built from POSIX threads that allows the user to use either the already developed SMP primitives or the direct thread primitives.We have been continually developing and improving this library over the past several years and have found it to be portable and efficient on a variety of operating systems(e.g.,Sun Solaris,Compaq/Digital UNIX,IBM AIX,SGI IRIX,HP-UX,and Linux).The SMP Node Library contains a number of SMP node algorithms for barrier synchronization, broadcasting the location of a shared buffer,replication of a data buffer,reduction,and memory management for shared-buffer allocation and release.In addition to these func-tions,we have control mechanisms for contextualization(executing a statement on only a subset of processors),and a parallel do that schedules n independent work statements implicitly to p processors as evenly as possible.The PRAM model assumes the availability of as many processors as needed and a synchronous mode of operation.However,SMPs have a limited number of processors and barriers have to be explicitly used to enforce synchronization.Hence the original PRAM algorithm for AEE can be converted to an SMP algorithm by balancing the work between the available processors and synchronizing the processors between the various steps and substeps of the algorithm.These barriers enforce synchronization and hence the algorithm works correctly on a SMP.Implementation Details Labeling the leaves is done as follows.Each original tree edge is converted into a pair of directed arcs and weighted as follows.A directed arc leaving a leaf vertex is assigned a weight of one;all other arcs are given a weight of zero.The Euler tour of the given tree is then constructed.This Euler tour is represented by a successor array with each node storing the index of its successor.This is followed by list ranking to obtain a consecutive labeling of the leaves.Our implementation uses the SMP list ranking algorithm and implementation developed by Helman and J´a J´a[10] that performs the following main steps:1.Finding the head h of the list which is given by h n n12Z where Z is thesum of successor indices of all the nodes in the list.2.Partitioning the input list into s sublists by randomly choosing one splitter fromeach memory block of n s1nodes,where s isΩp log n,where p is the number of processors.Corresponding to each of these sublists is a record in an array called Sublists.(Our implementation uses s8p.)3.Traversing each sublist computing the prefix sum of each node within the sublists.Each node records its sublist index.The input value of a node in the Sublists array is the sublist prefix sum of the last node in the previous Sublists.8 D.A.Bader,S.Sreshta,and N.R.Weisse-Bernstein4.The prefix sums of the records in the Sublists array are then calculated.5.Each node adds its current prefix sum value(value of a node within a sublist)andthe prefix sum of its corresponding Sublists record to get itsfinal prefix sums value.This prefix sum value is the required label of the leaves.For a detailed description of the above steps refer to[10].Pointers to the leaf verticesare stored in an array A.This completes Step(1)of AEE algorithm.Given the array A,the rake operation is applied by updating the necessary pointersin the tree’s data structure.The concurrent rake operations in Steps(2.1)and(2.2)are handled similarly.Each processor is responsible for an equal share(at most R p)of the R leaves in A odd,and rakes the appropriate leaves in each of these two steps,witha barrier synchronization following each step.Step(2.3)copies the remaining leaves (A even)into another array B.Thus iterations of the for loop alternate between using the A and B arrays for the rake operation and store the even leaves in the other array atStep(2.3)of the iteration.Finally,the value of the given expression is computed from the resultant three-vertex binary tree.Hence this implementation,while motivated bythe PRAM algorithm,differs substantially in its SMP implementation due to the limited number of processors and need for explicit synchronization.In addition,to achieve high-performance,our SMP implementation must make good use of cache.Alternatively,we could use Alg.2for the second step that eliminates the data copy between arrays A and B.While this modification uses less space(only a single array of leaf pointers),it has the disadvantage that due to the increasing strides of reading theleaves from the A array,more cache misses are likely.SMP Cost Model We use the SMP complexity model proposed by Helman and J´a J´a[10]to analyze our shared memory algorithms.In the SMP complexity model,we mea-sure the overall complexity of the algorithm by the triplet M A,M E,T C.The term M A is simply a measure of the number of non-contiguous main memory accesses,whereeach such access may involve an arbitrary-sized contiguous blocks of data.M E is the maximum amount of data exchanged by any processor with main memory.T C is an upper bound on the local computational complexity of any of the processors and is represented by the customary asymptotic notation.M A,M E are represented as approx-imations of the actual values.In practice,it is often possible to focus on either M A or M E when examining the cost of algorithms.Algorithmic Analysis Thefirst step of the algorithm uses the List Ranking algorithmdeveloped by Helman and J´a J´a[10].For n p2ln n,we would expect in practice list ranking to takeT n p M A n p;T C n p np(2)Tree contraction requires O log n iterations,where iteration i,for1i log n rakes n2i leaves concurrently.Since each rake operation requires a constant number of memory accesses of unit size,the tree contraction takesT n p M A n p;T C n p log n np(3)Evaluating Arithmetic Expressions using Tree Contraction:An SMP Implementation9 For n p log n,this simplifies to the same complexity as in Eq.2.Thus,for n p2lg n,evaluating arithmetic expressions with O n vertices on a p processor shared-memory machine takesT n p M A n p;T C n p np(4)6Experimental ResultsThis section summarizes the experimental results of our implementation.We tested ourshared-memory implementation on the Sun HPC10000,a UMA shared memory paral-lel machine with64UltraSPARC II processors and64GB of memory.Each processorhas16Kbytes of direct-mapped data(L1)cache and4Mbytes of external(L2)cache. The clock speed of each processor is400MHz.Experimental Data.In order to test the performance of our algorithm,we designeda collection of tree generators that when given an integer d,could generate arbitrarily large regular and irregular rooted,binary trees of n2d1vertices.Each generated tree is a strict binary tree,meaning that each vertex has either both subtrees empty orneither subtree empty.Thus,each test tree has n vertices and n12leaves.Let the level of a vertex be the number of edges on the path between it and the root.We then generate the following three kinds of strict binary trees:FULL:These are full,binary trees with2l internal vertices at each level l,for0l d1,and n12leaves at the last level l d 1.CAT:These“caterpillar”trees are basically long chains of vertices with one leaf at-tached at each internal vertex,except for two leaves at the bottom(level n12).Hence,the root is at level0,and each level l,for1l n12,has exactly two vertices.RAN:Unlike the full and the caterpillar trees,this is an irregular class of binary treewith no specific structure.We randomly create this input using an unrake-like(re-verse rake)operation.Each tree is constructed by randomly choosing one of the vertices v in the current tree(except the root)and introducing a new vertex u and a leaf w at the chosen vertex position.More specifically,u becomes the child of p v replacing v and w and v become the new children of u.The sub-tree rooted at v remains unaltered.We initially start with a three-vertex tree containing the root and two leaves and build the tree randomly until the tree contains a total of n vertices.Alg.1consists of four main substeps,namely1)the Euler tour computation,2)list ranking,3)copying leaves in the array A,and4)the rake operation that contracts the tree to a three-vertex tree and computes thefinal value of the arithmetic expression.The running times of our implementation of Alg.1for various sizes of FULL,CAT and RAN trees on different numbers of processors are plotted in Fig.3.The experiments were performed for d25with the number p of processors equal to2,4,8,16,and 32,and using32-bit integers.For d25we also give a step-by-step breakdown of the execution time.In all cases,for a particular class of input tree,the implementation performs faster as more processors are employed.The regular trees(FULL and CAT)10 D.A.Bader,S.Sreshta,and N.R.Weisse-BernsteinFig.3.Expression evaluation execution time for FULL,CAT,and RAN trees.The left-hand graphs plot the total running time taken for varying input sizes and numbers of processors.The corresponding graphs on the right give a step-by-step breakdown of the running time for afixed input size(2251vertices)and the number p of processors from2to32.Evaluating Arithmetic Expressions using Tree Contraction:An SMP Implementation11 represent special cases of expressions and run faster than the irregular input(RAN)that represents the most common class of expressions that have an irregular structure.Note that the irregular trees have a longer running time(primarily due to cache misses since the same number of rake operations per iteration are performed),but exhibit a nearly linear relative speedup.This performance matches our analysis(Eq.4).Finally,we have implemented a linear sequential time,non-recursive version of expression evaluation to provide sequential timing comparisons.It is important to note that the hidden asymptotic constant associated with the sequential code is very small (close to one),while the parallel code has a much larger hidden constant.Even so,our parallel code is faster than the sequential version when enough processors are used,and in the most general case,the irregular input trees.a)FULL b)CAT c)RANparison of time for rake step for FULL,CAT,and RAN trees for afixed input size(2251vertices)and the number p of processors from2to32.In Fig.4we compare the performance of the rake substep,that is,Step(2)in Algs.1 and2for d25on a range of processors.These experimental results confirm that the improved cache hit rate in Alg.1overcomes the time spent copying data between the A and B leaf pointer arrays.The improvement,though,is only noticeable when the input trees are regular.7ConclusionsIn summary,we present optimistic results that for thefirst time,show that parallel al-gorithms for expression evaluation using tree contraction techniques run efficiently on parallel symmetric multiprocessors.Our new implementations scale nearly linearly with the problem size and the number of processors,as predicted by our analysis in Eq.4. These results provide optimistic evidence that complex graph problems that have ef-ficient PRAM solutions,but no known efficient parallel implementations,may have scalable implementations on SMPs.12 D.A.Bader,S.Sreshta,and N.R.Weisse-BernsteinReferences1. D.A.Bader and J.J´a J´a.SIMPLE:A methodology for programming high performance algo-rithms on clusters of symmetric multiprocessors(SMPs).J.Parallel&Distributed Comput., 58(1):92–108,1999.2. D.A.Bader,A.K.Illendula,B.M.E.Moret,and ing PRAM algo-rithms on a uniform-memory-access shared-memory architecture.In G.S.Brodal,D.Fri-gioni,and A.Marchetti-Spaccamela,editors,Proc.5th Int’l Workshop on Algorithm Engi-neering(WAE2001),volume2141of Lecture Notes in Computer Science,pages129–144,˚Arhus,Denmark,August2001.Springer-Verlag.3. E.C´a ceres,F.Dehne,A.Ferreira,P.Flocchini,I.Rieping,A.Roncato,N.Santoro,andS.W.Song.Efficient parallel graph algorithms for coarse grained multicomputers and BSP.In Proc.24th Int’l Colloquium on Automata,Languages and Programming(ICALP’97), volume1256of Lecture Notes in Computer Science,pages390–400,Bologna,Italy,1997.Springer-Verlag.4. A.Charlesworth.Starfire:extending the SMP envelope.IEEE Micro,18(1):39–49,1998.5. A.Charlesworth.The Sun Fireplane system interconnect.In Proc.Supercomputing(SC2001),pages1–14,Denver,CO,November2001.6.R.Cole and U.Vishkin.The accelerated centroid decomposition technique for optimal par-allel tree evaluation in logarithmic time.Algorithmica,3:329–346,1988.7. F.Dehne,A.Ferreira,E.C´a ceres,S.W.Song,and A.Roncato.Efficient parallel graphalgorithms for coarse-grained multicomputers and BSP.Algorithmica,33:183–200,2002.8. A.M.Gibbons and W.Rytter.An optimal parallel algorithm for dynamic expression evalu-ation and its rmation and Computation,81:32–45,1989.9. B.Grayson,M.Dahlin,and V.Ramachandran.Experimental evaluation of QSM,a simpleshared-memory model.In Proc.13th Int’l Parallel Processing Symp.and10th Symp.Parallel and Distributed Processing(IPPS/SPDP),pages1–7,San Juan,Puerto Rico,April1999. 10. D.R.Helman and J.J´a J´a.Designing practical efficient algorithms for symmetric multi-processors.In Algorithm Engineering and Experimentation(ALENEX’99),volume1619of Lecture Notes in Computer Science,pages37–56,Baltimore,MD,January1999.Springer-Verlag.11.T.-S.Hsu and V.Ramachandran.Efficient massively parallel implementation of some com-binatorial algorithms.Theoretical Computer Science,162(2):297–322,1996.12.T.-S.Hsu,V.Ramachandran,and N.Dean.Implementation of parallel graph algorithmson a massively parallel SIMD computer with virtual processing.In Proc.9th Int’l Parallel Processing Symp.,pages106–112,Santa Barbara,CA,April1995.13.J.J´a J´a.An Introduction to Parallel Algorithms.Addison-Wesley Publishing Company,NewYork,1992.14.J.Keller,C.W.Keßler,and J.L.Tr¨a ff.Practical PRAM Programming.John Wiley&Sons,2001.15.S.R.Kosaraju and A.L.Delcher.Optimal parallel evaluation of tree-structured computationsby raking(extended abstract).Technical report,The Johns Hopkins University,1987.ler and J.H.Reif.Parallel tree contraction and its application.In Proc.26thAnn.IEEE Symp.Foundations of Computer Science(FOCS),pages478–489,Portland,OR, October1985.IEEE Press.17.OpenMP Architecture Review Board.OpenMP:A proposed industry standard API forshared memory ,October1997.18.M.Reid-Miller.List ranking and list scan on the Cray put.Syst.Sci.,53(3):344–356,December1996.19.J.H.Reif,editor.Synthesis of Parallel Algorithms.Morgan Kaufmann Publishers,1993.20.J.Sibeyn.Better trade-offs for parallel list ranking.In Proc.9th Ann.Symp.Parallel Algo-rithms and Architectures(SPAA-97),pages221–230,Newport,RI,June1997.ACM.。