合肥生活安徽新聞合肥交通合肥房產(chǎn)生活服務(wù)合肥教育合肥招聘合肥旅游文化藝術(shù)合肥美食合肥地圖合肥社保合肥醫(yī)院企業(yè)服務(wù)合肥法律

        ECM3446代做、代寫Python/C++編程
        ECM3446代做、代寫Python/C++編程

        時(shí)間:2025-02-09  來源:合肥網(wǎng)hfw.cc  作者:hfw.cc 我要糾錯(cuò)



        ECM3446: CA
        This continuous assessment is for the ECM3446 version of the High Performance Computing
        module. If you are an undergraduate student you should follow these in- structions. If you are a
        student on an MSc programme please refer to the “ECMM461: Continuous assessment 1”
        instructions instead.
        1 The Atmospheric Boundary Layer
        The part of the Earth’s atmosphere nearest the surface is known as the “Atmospheric Boundary
        Layer”, and in this part of the atmosphere the wind speed increases with height. This causes
        material emitted from a chimney to be advected at di↵erent horizontal speeds depending on its
        height. Figure 1 shows material from a chimney being advected by the wind.
        Figure 1: Material emitted from a chimney being advected by a horizontal wind
        The wind in the Atmospheric Boundary Layer can be approximated as a horizontal velocity which
        depends only on the height (z) and zero vertical velocity. The horizontal velocity as a function of height
        vx(z) can be represented by a logarithmic profile
        (1)
        where u is a parameter called the “friction velocity”, z0 is a parameter called the “roughness
        length”, and = 0.41 is a constant called Von K´arm´an’s constant.
        2 The assignment
        In this assignment you will calculate a numerical solution to the advection equation to simulate the
        movement of a cloud of material in the atmospheric boundary layer. There are four parts to this assignment:
        • Task 1: For the first part of this assignment you will parallelise a program which calculates a
        numerical solution to the 2D advection equation. You have been provided with the program
        1
        -
        -ECM3446: CA
        and you will need to parallelise it using OpenMP. This part of the assignment is described
        in Section 2.1.
        • Task 2: For the second part of this assignment you will modify the program to change
        the parameters of the test problem into a more realistic configuration. This is described in
        Section 2.2.
        • Task 3: For the third part of this assignment you will add a logarithmic velocity profile to
        the program. This is described in Section 2.3.
        • Task 4: For the fourth part of the assignment you will calculate the horizontal profile of the
        advected material by calculating a vertical average. This is described in Section 2.4.
        This assignment assesses the following Intended Learning Outcomes:
        • Demonstrate skills in parallel processing algorithm design and the practical implementation
        of such algorithms
        • Demonstrate an awareness of numerical e↵ects and the influence of floating point number
        representation in high-performance computing applications.
        • Interpret an informal requirement specification
        • Systematically analyse information and make appropriate design choices
        2.1 Task 1: Parallelising the program
        The advection equation for a two-dimensional scalar field u(x, y) is
        (2)
        where vx and vy are the velocities in the x and y direction, respectively. You have been
        provided with a C program which calculates a numerical solution to the advection equation
        for a two- dimensional scalar field u(x, y) using finite di↵erence approximations. The program
        uses one-sided di↵erences to calculate the spatial derivatives
        dy (4)
        where ui,j is the value of the scalar field u(x, y) at grid point (i, j), dx is the spacing of grid points
        in the x direction and dy is the spacing of grid points in the y direction. The solution starts
        from specified initial conditions at time t = 0 and is updated from time t to time t + t using
        forward-Euler time steps
        t (5)
        The program uses 1000 ⇥ 1000 grid points covering a unit square computational domain 0 
        x  1.0 and 0  y  1.0. The initial conditions are a Gaussian given by the expression
        (6)
        The Gaussian is centred at x0 = 0.1, y0 = 0.1 and has a width x = y = 0.03. The boundary
        conditions are u = 0 on all boundaries. The program calculates 1500 time steps, and the time step
        size is calculated from the Courant condition with a CFL number of 0.9. The velocities in the x
        and y directions are vx = 0.01 and vy = 0.01 respectively.
        The first part of the assignment is to parallelise the program provided using OpenMP. There
        are 10 loops or loop nests (a loop over j inside a loop over i) in the program and these have been
        identified with a comment of the form
        2ECM3446: CA
        /* LOOP N */
        where N is an integer between 1 and 10 inclusive. For each loop or loop nest you should decide
        whether it can be correctly parallelised by adding an OpenMP directive:
        • If the loop can be correctly parallelised then you should parallelise it by adding an OpenMP
        directive, ensuring that all variables are correctly scoped. You do not need to scope variables
        which have the const qualifier.
        • If the loop cannot be parallelised then you should add a comment in the program to say that
        the loop cannot be parallelised and explain why.
        To build the serial program in ISCA use the command
        gcc -o advection2D -std=c99 advection2D.c -lm
        To build the program with OpenMP enabled in ISCA use the command
        gcc -fopenmp -o advection2D -std=c99 advection2D.c -lm
        A gnuplot script which plot the final values of u(x, y) has been provided.
        The parallelised version of the program must produce exactly the same output as
        the original program.
        2.2 Task 2: Modifying the calculation
        In this section you will modify the example program to change the test problem so that it more
        closely resembles a cloud of material emitted from a chimney. This requires changing the size of
        the computational domain, the initial conditions, the velocities and the number of time steps.
        In the following instructions distances are measured in metres (m) and velocities in metres per
        second (m/s).
        • The test problem uses a computational domain which is a unit square (it covers the range
        0  x  1.0 and 0  y  1.0). Change the computational domain so that it covers the range
        0  x  30.0 m and 0  y  30.0 m
        • For this calculation we require the Gaussian to be on the left hand side of the domain and
        vertically centred. Change the centre of the Gaussian to x0 = 3.0 m, y0 = 15.0 m
        • The cloud of material will have a larger vertical extent than horizontal extent. This will be
        represented by a Gaussian which has di↵erent widths in the x and y directions. Change the
        widths of the Gaussian specified in the initial conditions to x = 1.0 m and y = 5.0 m
        • The material in the atmospheric boundary layer advects horizontally but not vertically.
        Change the horizontal velocity to vx = 1.0 m/s and change the vertical velocity to vy = 0.
        • Change the maximum number of time steps to 800 so that the material does not advect out
        of the computational domain.
        After you have made these changes re-compile and re-run the program. If necessary update
        the OpenMP directives to ensure that the program produces identical results with and without
        OpenMP.
        Now plot the initial and final values of u(x, y). The initial values are in the file initial.dat
        and the final values are in the file final.dat. You can use the example gnuplot script provided
        but you will need to change the axis limits to match the new computational domain size. Plots of
        the initial and final values of u(x, y) are shown in Figure 2 for comparison.
        3ECM3446: CA
        Figure 2: Initial (left) and final (right) values of u(x, y) from the calculation in Section 2.2
        2.3 Task 3: Adding vertical shear
        In this section you will modify the program so that the horizontal velocity varies with height
        according to the logarithmic profile given in equation 1. The logarithmic profile should only be
        used if z is greater than the roughness length z0. If z > z0 calculate the horizontal velocity using
        equation 1, and if z  z0 set the horizontal velocity to zero. The parameters of the profile should
        be set to u⇤ = 0.2 m/s, z0 = 1.0 m and  = 0.41.
        In the program the variable y represents the height z in equation 1. The computational domain,
        the initial conditions and the number of time steps should be kept at the values specified in the
        previous section (Section 2.2).
        Modify the horizontal velocity as described above and re-run the program. If necessary update
        the OpenMP directives to ensure that the program produces identical results with and without
        OpenMP.
        Now plot the final values of u(x, y) (the initial values are the same as in the previous
        section). Plots of the initial and final values of u(x, y) are shown in Figure 3.
        Figure 3: Initial (left) and final (right) values of u(x, y) from the calculation in Section 2.3
        2.4 Task 4: Calculating the vertically averaged distribution
        In this last section you should calculate the vertically averaged distribution of u(x, y) at the end
        of the calculation in Section 2.3. The vertical average should cover the whole vertical domain but
        should not include the boundary values. The code you add to the program does not need to be
        4ECM3446: CA
        parallelised. Plot the vertically averaged values of u as a function of x using a line
        graph.
        3 Deliverables
        The deliverables for this assignment are the source code for the program with your modifications,
        and the four plots showing your results:
        1. Source code for the final version of the program. The program should include the OpenMP
        directives added in Section 2.1 with any changes required to ensure the modified program
        continues to work correctly. The computational domain, the initial conditions, the velocities
        and the number of time steps should be set to the values used in Section 2.3.
        2. Four plots showing the output from running the program. The required plots are:
        • A plot of the initial conditions u(x, y) from Section 2.2
        • A plot of the final values of u(x, y) from Section 2.2
        • A plot of the final values of u(x, y) from Section 2.3
        • A plot showing the vertically averaged profile of u from Section 2.4
        The plots may be generated using the gnuplot script provided, or alternative plotting software
        of your choice provided the data values in the plot are clearly represented. Your plots should
        be delivered as PNG or PDF files.
        The deliverables should uploaded to ELE a single zip or tar file containing the
        source code for the final version of the program, and the four plots. The deadline for
        submission is 12 noon 20 February 2025.
        4 Mark scheme
        A total of 100 marks are available for this assignment:
        1. Task 1: Parallelising the program (30 marks)
        (a) For each of the 10 loops or loop nests identified in the program there are two marks to
        be awarded according to the following criteria:
        • The loop has been correctly identified as either one that can be parallelised or one
        that cannot be parallelised (1 mark)
        • If the loop can be parallelised then an appropriate OpenMP directive has been
        added which unambiguously and correctly scopes all variables. Variables with the
        const qualifier do not need to be scoped (1 mark)
        OR
        • If the loop cannot be parallelised then a comment has been added with a correct
        explanation of why the loop cannot be parallelised (1 mark).
        (b) An additional 10 marks are awarded if the parallelised program produces results which
        exactly match the original serial program.
        2. Task 2: Modifying the calculation (20 marks)
        10 marks are awarded for correctly modifying the computational domain, the initial conditions
         and the number of time steps, as specified in Section 2.2. 5 marks are awarded for the
        plot of the initial conditions and 5 marks are awarded for the plot of the final results.
        3. Task 3: Adding vertical shear (25 marks)
        20 marks are awarded for correctly modifying the velocity profile as specified in Section 2.3.
        5 marks are awarded for the plot of the final results.
        5ECM3446: CA
        4. Task 4: Calculating the vertically averaged distribution (25 marks)
        20 marks are awarded for correctly modifying the program to calculate the vertically averaged
        distribution of u as specified in Section 2.4. 5 marks are awarded for the plot of the final
        results.


        請(qǐng)加QQ:99515681  郵箱:99515681@qq.com   WX:codinghelp



         

        掃一掃在手機(jī)打開當(dāng)前頁
      1. 上一篇:代寫CCBS4020、代做c/c++,Python設(shè)計(jì)程序
      2. 下一篇:代寫INT2067、代做Python編程語言
      3. 無相關(guān)信息
        合肥生活資訊

        合肥圖文信息
        出評(píng) 開團(tuán)工具
        出評(píng) 開團(tuán)工具
        挖掘機(jī)濾芯提升發(fā)動(dòng)機(jī)性能
        挖掘機(jī)濾芯提升發(fā)動(dòng)機(jī)性能
        戴納斯帝壁掛爐全國售后服務(wù)電話24小時(shí)官網(wǎng)400(全國服務(wù)熱線)
        戴納斯帝壁掛爐全國售后服務(wù)電話24小時(shí)官網(wǎng)
        菲斯曼壁掛爐全國統(tǒng)一400售后維修服務(wù)電話24小時(shí)服務(wù)熱線
        菲斯曼壁掛爐全國統(tǒng)一400售后維修服務(wù)電話2
        美的熱水器售后服務(wù)技術(shù)咨詢電話全國24小時(shí)客服熱線
        美的熱水器售后服務(wù)技術(shù)咨詢電話全國24小時(shí)
        海信羅馬假日洗衣機(jī)亮相AWE  復(fù)古美學(xué)與現(xiàn)代科技完美結(jié)合
        海信羅馬假日洗衣機(jī)亮相AWE 復(fù)古美學(xué)與現(xiàn)代
        合肥機(jī)場巴士4號(hào)線
        合肥機(jī)場巴士4號(hào)線
        合肥機(jī)場巴士3號(hào)線
        合肥機(jī)場巴士3號(hào)線
      4. 上海廠房出租 短信驗(yàn)證碼 酒店vi設(shè)計(jì)

        主站蜘蛛池模板: 看电影来5566一区.二区| 国产剧情国产精品一区| 无人码一区二区三区视频| 无码乱码av天堂一区二区| 国产伦精品一区二区三区| 亚洲片国产一区一级在线观看| 2018高清国产一区二区三区| 亚洲乱码国产一区三区| 国产福利一区二区在线视频 | 亚洲av无码片vr一区二区三区| 国产一区二区三区高清在线观看| 日韩毛片一区视频免费| 国产大秀视频一区二区三区| 国产香蕉一区二区三区在线视频| 国产精品久久一区二区三区| 亚洲国产视频一区| 精品无码一区二区三区在线| 色婷婷一区二区三区四区成人网 | 日韩精品一区二三区中文| 国产一区中文字幕| 国产一区二区三区不卡在线看| 国产成人av一区二区三区在线观看| eeuss鲁片一区二区三区| 无码精品一区二区三区| 精品国产免费观看一区| 国偷自产视频一区二区久| 日本精品3d动漫一区二区| 波多野结衣电影区一区二区三区 | 一区二区在线观看视频| 天堂资源中文最新版在线一区 | 一区二区三区四区国产| 国产精品女同一区二区久久| 精品国产日韩亚洲一区| 国产精品免费一区二区三区四区| 香蕉免费一区二区三区| 国产精品揄拍一区二区久久| 韩国精品福利一区二区三区| 亚洲成av人片一区二区三区| 久久亚洲国产精品一区二区| 国产乱码一区二区三区| 精品一区二区三区水蜜桃|