{"errcode":0,"errmsg":"","data":{"problems":[{"Body":"
下面哪种程序结构或命令不能实现临界区的串行访问?()\n\n
","Type":"SingleChoice","data":{},"Score":0.5,"index":0,"score":0.5,"Answer":["A"],"Remark":"","Options":[{"key":"B","value":"busy-waiting循环
"},{"key":"D","value":"信号量(semaphore)
"},{"key":"C","value":"互斥锁(mutex)
"},{"key":"A","value":"条件变量(condition\nvariable)
"}],"Version":"d1799613979b4eb7a0bedbc5d809c231","TypeText":"单选题","HasRemark":false,"LibraryID":"9710","max_retry":1,"TemplateID":804351,"difficulty":1,"library_id":"9710","problem_id":6784,"ProblemType":1,"template_id":804351},{"Body":"按Flynn分类法(Flynn’sTaxonomy),可对计算机体系结构进行分类。请写出并行计算主要考虑的两种类型(中文及英文缩写词):___________________________、____________________________。","Type":"ShortAnswer","data":{},"Score":2,"index":0,"score":2,"Answer":"","Remark":"","Version":"2e6fcdbea62b4d75ad34e93b1d3b7dfc","TypeText":"主观题","HasRemark":false,"LibraryID":"9710","max_retry":1,"TemplateID":804365,"difficulty":1,"library_id":"9710","problem_id":6800,"ProblemType":5,"template_id":804365,"AllowResults":["text","pic","file"],"review_detail":{}},{"Body":"关于OpenMP编程,下面哪句话是正确的?() \n\n
","Type":"SingleChoice","data":{},"Score":0.5,"index":0,"score":0.5,"Answer":["D"],"Remark":"","Options":[{"key":"D","value":"#pragma\nomp parallel num_threads(4), 这个命令会使程序额外创建3个线程。
"},{"key":"A","value":"OpenMP需要编译器的支持,如果编译器不支持OpenMP,遇到其预处理指令,在编译时将报错。
"},{"key":"C","value":"OpenMP编程只使用预处理命令,因此编写共享内存式并行程序代码量少。
"},{"key":"B","value":"如果C语言程序中包括以#pragma开头的预处理命令,则说明这是OpenMP程序。
"}],"Version":"7518c1eab2814e48a0a320ea87852553","TypeText":"单选题","HasRemark":false,"LibraryID":"9710","max_retry":1,"TemplateID":804356,"difficulty":1,"library_id":"9710","problem_id":6789,"ProblemType":1,"template_id":804356},{"Body":"在MPI编程中,使用派生数据类型可以减少通讯开销。下面的函数用于创建派生数据类型:
int\nMPI__create_struct(int count, int array__blocklengths[],\nMPI_Aint array__displacements[], MPI_Datatype array__types[],\nMPI_Datatype* new__p);
需要把一个整数数组a\n(其长度为10)和单精度浮点数b合并为一个派生数据, 通过MPI__address函数得到a的存储地址为20, b的存储地址为100, 请问调用MPI__create_struct时应给数组array__blocklengths[], array__displacements[]和array__types[]分别传什么数据?
","Type":"ShortAnswer","data":{},"Score":3,"index":0,"score":3,"Answer":"","Remark":"","isEdit":true,"Options":[],"Version":"be4c2c1ab924437c9a86e5b83d6ef29d","TypeText":"主观题","HasRemark":false,"LibraryID":9710,"max_retry":1,"TemplateID":804368,"difficulty":1,"library_id":9710,"problem_id":6803,"ProblemType":5,"template_id":804368,"AllowResults":["text","pic","file"],"review_detail":{}},{"Body":"关于程序的输入、输出,下面哪句话是错误的
并行程序屏幕输出信息的顺序经常是不确定的
"},{"key":"C","value":"一般来说,并行程序会允许所有进程/线程访问同一个磁盘文件
"},{"key":"B","value":"一般来说,并行程序会允许所有进程/线程访问stdout
"},{"key":"A","value":"对于大多数并行程序,只允许0号进程/线程访问stdin
"}],"Version":"4efd9a15da114c9a9ca86f028cd46e2e","TypeText":"单选题","HasRemark":false,"LibraryID":9710,"max_retry":1,"TemplateID":804336,"library_id":9710,"problem_id":6773,"ProblemType":1,"answerIndex":2,"template_id":804336,"review_detail":{}},{"Body":"关于kernel中的分支,以下描述错误的是()\n\n
","Type":"SingleChoice","data":{},"Score":0.5,"index":0,"score":0.5,"Answer":["B"],"Remark":"","Options":[{"key":"C","value":"同一warp内所有线程都跳转执行同一分支时性能损失最小
"},{"key":"D","value":"分支语句可能被编译为条件执行
"},{"key":"A","value":"分支分歧(Branch\ndivergence)仅发生在warp内
"},{"key":"B","value":"如果存在多个不同分支,所有分支总会被全部执行
"}],"Version":"68e4f3c959d04a6b9526c1516aa9c80d","TypeText":"单选题","HasRemark":false,"LibraryID":"9710","max_retry":1,"TemplateID":804359,"difficulty":1,"library_id":"9710","problem_id":6792,"ProblemType":1,"template_id":804359},{"Body":"在一个网络上,信息传输延迟(latency)是10毫秒,带宽是10MBps, 那么传输1 MB数据所花的时间是[填空1]秒。
","Type":"FillBlank","data":{},"Score":1,"index":0,"score":1,"Blanks":[{"Num":1,"Score":1,"Answers":["0.11"],"FuzzyMatch":false,"CaseSensitive":false}],"Remark":"","isEdit":false,"Version":"0b575e53589a4a0d8add483e1da68aeb","TypeText":"填空题","HasRemark":false,"LibraryID":9710,"max_retry":1,"TemplateID":806955,"library_id":9710,"problem_id":6808,"BlanksScore":[],"ProblemType":4,"template_id":806955,"review_detail":{},"OrderInsensitive":false},{"Body":"关于共享内存系统互连网络的说法,哪个是错误的?","Type":"SingleChoice","data":{},"Score":0.5,"index":0,"score":0.5,"Answer":["D"],"Remark":"","isEdit":false,"Options":[{"key":"D","value":"总线的成本比较高。
"},{"key":"A","value":"总线主要用在共享内存系统中。
"},{"key":"C","value":"交叉开关网络更适合计算核心比较多的情况。
"},{"key":"B","value":"交叉开关网络可用在共享内存系统中,且比总线速度快。
"}],"Version":"a1a2f14a35b5471e986511c511e9e48a","TypeText":"单选题","HasRemark":false,"LibraryID":9710,"max_retry":1,"TemplateID":804335,"library_id":9710,"problem_id":6772,"ProblemType":1,"template_id":804335,"review_detail":{}},{"Body":" CUDA程序定义GPU kernel时,表示必须由CPU调用的GPU kernel的关键字是:[填空1]","Type":"FillBlank","data":{},"Score":1,"index":0,"score":1,"Blanks":[{"Num":1,"Score":1,"Answers":["global"],"FuzzyMatch":false,"CaseSensitive":false}],"Remark":"","isEdit":false,"Version":"ef10438af3a44bb5873ede72968953c3","TypeText":"填空题","HasRemark":false,"LibraryID":9710,"max_retry":1,"TemplateID":804339,"library_id":9710,"problem_id":6799,"BlanksScore":[],"ProblemType":4,"template_id":804339,"review_detail":{},"OrderInsensitive":false},{"Body":"关于测量并行程序的运行时间,下面哪句话是正确的?()\n\n
","Type":"SingleChoice","data":{},"Score":0.5,"index":0,"score":0.5,"Answer":["C"],"Remark":"","Options":[{"key":"D","value":"为研究可扩展性,需测量不同数量线程/进程时的运行时间,线程/进程数可超过计算核心数。
"},{"key":"B","value":"程序开发阶段不需要测量时间。
"},{"key":"C","value":"路障(Barrier)常常在测量时间时使用。
"},{"key":"A","value":"一般测量CPU时间。
"}],"Version":"bd3e660f028a4b44ac8f1ee4ac55eab6","TypeText":"单选题","HasRemark":false,"LibraryID":"9710","max_retry":1,"TemplateID":804341,"difficulty":1,"library_id":"9710","problem_id":6774,"ProblemType":1,"template_id":804341},{"Body":"关于MPI_Send和MPI_Recv函数,下面哪句话是正确的?()\n\n
","Type":"SingleChoice","data":{},"Score":0.5,"index":0,"score":0.5,"Answer":["B"],"Remark":"","Options":[{"key":"A","value":"对MPI_Send函数的调用只有当其发送的消息被接收了才返回。
"},{"key":"B","value":"对MPI_Recv函数的调用只有当其接收到了消息才返回。
"},{"key":"C","value":"一个进程先后调用多次MPI_Send发送消息,则这些消息一定按发送的先后顺序被接收到。
"},{"key":"D","value":"MPI_Send调用中的发送数据类型参数应与MPI_Recv调用中的接收数据类型完全一样。
"}],"Version":"f7710db6f15b43c5b3ac0ab34cec30c3","TypeText":"单选题","HasRemark":false,"LibraryID":"9710","max_retry":1,"TemplateID":804343,"difficulty":1,"library_id":"9710","problem_id":6776,"ProblemType":1,"template_id":804343},{"Body":"关于MPI程序,下面哪句话是错误的?()\n\n
","Type":"SingleChoice","data":{},"Score":0.5,"index":0,"score":0.5,"Answer":["C"],"Remark":"","Options":[{"key":"B","value":"MPI_Init函数之前、MPI_Finalize函数之后,一般都不应有其他MPI函数。
"},{"key":"C","value":"MPI_Init函数应该在main函数中。
"},{"key":"D","value":"MPI程序编译出的目标文件不能直接执行,需要用mpiexec等程序调用执行。
"},{"key":"A","value":"MPI函数和类型均为如下格式:MPI_xxxx,其中“_”后面第一个字符为大写字母。
"}],"Version":"4a3539ae358e4057a741df02d7642297","TypeText":"单选题","HasRemark":false,"LibraryID":"9710","max_retry":1,"TemplateID":804342,"difficulty":1,"library_id":"9710","problem_id":6775,"ProblemType":1,"template_id":804342},{"Body":"关于消除Pthreads程序中的竞争条件,下面哪句话是错的?()\n\n
","Type":"SingleChoice","data":{},"Score":0.5,"index":0,"score":0.5,"Answer":["C"],"Remark":"","Options":[{"key":"B","value":"可以使用互斥锁改写程序消除竞争条件带来的问题
"},{"key":"C","value":"为了消除竞争条件带来的问题,不应使用优化编译选项编译程序
"},{"key":"A","value":"可以按busy-waiting方式改写程序,消除竞争条件带来的问题
"},{"key":"D","value":"可以用信号量改写程序消除竞争条件带来的问题
"}],"Version":"419c43191ba14c8bbcb97ba2964373be","TypeText":"单选题","HasRemark":false,"LibraryID":"9710","max_retry":1,"TemplateID":804349,"difficulty":1,"library_id":"9710","problem_id":6782,"ProblemType":1,"template_id":804349},{"Body":"下面关于OpenMP编程中互斥访问临界区的说法哪个是错误的?()\n\n
","Type":"SingleChoice","data":{},"Score":0.5,"index":0,"score":0.5,"Answer":["C"],"Remark":"","Options":[{"key":"B","value":"atomic指令、critical指令和锁都不能保证访问临界区各线程的顺序。
"},{"key":"A","value":"最常用的办法是使用critical\ndirective,它使用较为简单。
"},{"key":"D","value":"对同一个临界区,不应在两个线程里使用不同的互斥访问机制对它进行保护。
"},{"key":"C","value":"程序中多个未命名critical\ndirective区域能同时运行。
"}],"Version":"de4b4f74e6044272a652d0d872f52158","TypeText":"单选题","HasRemark":false,"LibraryID":"9710","max_retry":1,"TemplateID":804355,"difficulty":1,"library_id":"9710","problem_id":6788,"ProblemType":1,"template_id":804355},{"Body":"关于Pthreads和OpenMP多线程编程,下面哪句话是错误的?()\n\n
","Type":"SingleChoice","data":{},"Score":0.5,"index":0,"score":0.5,"Answer":["A"],"Remark":"","Options":[{"key":"C","value":"Pthreads多线程程序能够被各种C语言编译器支持。
"},{"key":"A","value":"线程安全性问题仅出现在Pthreads编程中。
"},{"key":"D","value":"OpenMP编程比较简单,引入的代码量往往比较少。
"},{"key":"B","value":"Pthreads编程更加底层,能够控制各个线程的行为。
"}],"Version":"20f6abca293c42cc9dcb0ef29ceab8ef","TypeText":"单选题","HasRemark":false,"LibraryID":"9710","max_retry":1,"TemplateID":804354,"difficulty":1,"library_id":"9710","problem_id":6787,"ProblemType":1,"template_id":804354},{"Body":"内存中的缓存行与缓存的对应方式有三种:全相联、直接映射和n路组相联,其中采用[填空1]方式时每个高速缓存行只能放在缓存中的唯一位置。","Type":"FillBlank","data":{},"Score":1,"index":0,"score":1,"Blanks":[{"Num":1,"Score":1,"Answers":["直接映射"],"FuzzyMatch":false,"CaseSensitive":false}],"Remark":"","isEdit":false,"Version":"04643ac5e3bb420ab70663ab6b04b68f","TypeText":"填空题","HasRemark":false,"LibraryID":9710,"max_retry":1,"TemplateID":804340,"library_id":9710,"problem_id":6798,"BlanksScore":[],"ProblemType":4,"template_id":804340,"review_detail":{},"OrderInsensitive":false},{"Body":"d维超立方体互连网络中有个节点(处理器/内存对), d>2, 则其中通讯链路数为______________,等分宽度为___________。
在OpenMP编程中,一个变量的作用域(scope)指的是____________________________, 按作用域的不同, 变量主要分成哪两类: ____________________________________________.
","Type":"ShortAnswer","data":{},"Score":2,"index":0,"score":2,"Answer":"","Remark":"","isEdit":true,"Options":[],"Version":"d775eb069934481799d884fb9232c3ee","TypeText":"主观题","HasRemark":false,"LibraryID":9710,"max_retry":1,"TemplateID":804367,"difficulty":1,"library_id":9710,"problem_id":6802,"ProblemType":5,"template_id":804367,"AllowResults":["text","pic","file"],"review_detail":{}},{"Body":"下面有一段进行数组求和的OpenMP程序,其中x为长度为n的共享数组,p为之前已赋值的正整数(其值远小于n),i为之前已声明的整型变量。
1. sum= 0;
2. #pragma omp parallel for num_threads(p)
3. for(i=0; i<n; i++)
4. sum+= x[i];
(1) 该程序第几行有问题?什么问题?
(2) 请使用busy-waiting方式改写for循环内部语句,使其正确。
(3) 请使用一种OpenMP提供的简便方法改写该程序,使其正确。
(4) 这里可以使用归约(reduction)吗?如果可以,该如何改写程序?
关于MPI程序的安全性,下面哪几句话是错误的?()\n\n
","Type":"MultipleChoice","data":{},"Score":1,"index":0,"score":1,"Answer":["A","D"],"Remark":"","Options":[{"key":"E","value":"MPI程序的安全性问题与消息传递的缓冲区有关。
"},{"key":"A","value":"不安全的MPI程序一定输出错误的结果。
"},{"key":"D","value":"解决MPI程序的安全性问题必须重新安排通讯过程。
"},{"key":"C","value":"不安全的MPI程序可能造成死锁。
"},{"key":"B","value":"MPI程序的安全性问题往往由多个进程相互间发送和接收数据造成。
"}],"Version":"39fa7a0711ef4ab79d10a3d6ee814e45","TypeText":"多选题","HalfScore":0,"HasRemark":false,"LibraryID":"9710","max_retry":1,"TemplateID":804363,"difficulty":1,"library_id":"9710","problem_id":6796,"ProblemType":2,"template_id":804363,"awardingRule":1},{"Body":"l本次考试为开卷考试,独立作答。可以参考事先准备好的纸版和电子资料。
l 考试期间不可以通过任何方式与他人讨论或交流,不可以参考他人答案。
l 如果考试中有异常动作(包括关摄像头),教师保留以后对该考生个别面试的权力。
l 如发现不合理的雷同情况,经授课团队调查属实则按学校相关规定处理。
l 保护清华大学知识产权,绝不保存、散播本次考试题目。
","Type":"SingleChoice","data":{},"Score":0.5,"index":0,"score":0.5,"Answer":["A"],"Remark":"","isEdit":true,"Options":[{"key":"A","value":"同意上述考试规则
"},{"key":"B","value":"不同意上述考试规则(选此项将导致考试成绩无效)
"}],"Version":"cc59cba15413456281b2bbef8a50f355","TypeText":"单选题","HasRemark":false,"LibraryID":9710,"max_retry":1,"TemplateID":804174,"library_id":9710,"problem_id":6769,"ProblemType":1,"answerIndex":0,"template_id":804174,"review_detail":{}},{"Body":"关于含临界区的Pthreads程序,下面哪句话是错误的?()\n\n
","Type":"SingleChoice","data":{},"Score":0.5,"index":0,"score":0.5,"Answer":["B"],"Remark":"","Options":[{"key":"D","value":"使用mutex保护临界区的程序无法让线程按某个顺序依次访问临界区。
"},{"key":"B","value":"当线程数目大于实际计算核心数目时,使用mutex程序的运行时间仍将持续减少。
"},{"key":"A","value":"当线程数目大于实际计算核心数目时,使用busy-waiting程序的运行时间可能显著变长。
"},{"key":"C","value":"使用busy-waiting的程序可以让线程按某个顺序依次访问临界区。
"}],"Version":"ee90077cac0749aea992c45b478c00d9","TypeText":"单选题","HasRemark":false,"LibraryID":"9710","max_retry":1,"TemplateID":804350,"difficulty":1,"library_id":"9710","problem_id":6783,"ProblemType":1,"template_id":804350},{"Body":"OpenMP编程中的归约子句的格式是: reduction(<operator>: <variable list>)
*\n, /
"},{"key":"A","value":"+\n, -
"},{"key":"D","value":"^
"},{"key":"C","value":"||\n, &&
"}],"Version":"0ec68e5f14ab41e48a8ec8259c66a189","TypeText":"单选题","HasRemark":false,"LibraryID":9710,"max_retry":1,"TemplateID":804357,"difficulty":1,"library_id":9710,"problem_id":6790,"ProblemType":1,"answerIndex":1,"template_id":804357,"review_detail":{}},{"Body":"下面描述程序负载分析技术,哪个说法是不准确的?()\n\n
","Type":"SingleChoice","data":{},"Score":0.5,"index":0,"score":0.5,"Answer":["B"],"Remark":"","Options":[{"key":"B","value":"Profiling技术通常记录程序中事件发生的时间先后信息
"},{"key":"D","value":"分析程序的负载可以结合Profiling和Tracing两种技术
"},{"key":"A","value":"相比Tracing技术,Profiling技术在分析程序负载特征时一般引入的开销较低
"},{"key":"C","value":"可以通过采样技术减少Tracing技术产生的事件数量
"}],"Version":"0c96ff99d24b4c018e1aaf8591af8503","TypeText":"单选题","HasRemark":false,"LibraryID":"9710","max_retry":1,"TemplateID":804361,"difficulty":1,"library_id":"9710","problem_id":6794,"ProblemType":1,"template_id":804361},{"Body":"关于缓存一致性(cache\ncoherence),下面哪几句话是错的?()\n\n
","Type":"MultipleChoice","data":{},"Score":1,"index":0,"score":1,"Answer":["B","D","E"],"Remark":"","Options":[{"key":"D","value":"采用监听Cache一致性协议比采用基于目录的Cache一致性协议更适合大型系统。
"},{"key":"A","value":"程序员无法直接控制对缓存的读写。
"},{"key":"C","value":"缓存一致性问题的解决方案主要包括:监听Cache一致性协议和基于目录的Cache一致性协议。
"},{"key":"E","value":"对于MPI并行程序,缓存一致性也会带来影响。
"},{"key":"B","value":"了解缓存一致性问题可帮助我们找到程序错误的原因。
"}],"Version":"e4e2a83e1ef94996a97b9318e14ac668","TypeText":"多选题","HalfScore":0,"HasRemark":false,"LibraryID":"9710","max_retry":1,"TemplateID":804362,"difficulty":1,"library_id":"9710","problem_id":6795,"ProblemType":2,"template_id":804362,"awardingRule":1},{"Body":"环面网格(toroidal\nmesh)其实是一种二维的Torus互连结构, 将其中节点(处理器/内存对)的排列方式改为三维阵列、并扩展节点间互连即得到三维Torus网络。那么对于含个节点的三维Torus网络(设q为足够大的偶数), 它有多少条通讯链路? 等分宽度是多少? 相比环面网格,它的连通性(connectivity)是更好、还是更差?
共享内存系统中,各个计算核心访问内存的速度是一样的。
"},{"key":"A","value":"共享内存系统中,各个计算核心都可以访问所有的内存。
"},{"key":"D","value":"共享内存系统可以作为分布式内存计算系统中的一个计算节点。
"},{"key":"C","value":"共享内存系统中,各个计算核心通常有自己的私有缓存。
"}],"Version":"1aad78266ae14950b745811be27b6d4c","TypeText":"单选题","HasRemark":false,"LibraryID":9710,"max_retry":1,"TemplateID":804175,"library_id":9710,"problem_id":6770,"ProblemType":1,"template_id":804175,"review_detail":{}},{"Body":"特殊且繁忙的一个学期即将结束了,请简单回顾学习本课程得到的收获,并对教学内容和安排加以评论、提出建议。
","Type":"ShortAnswer","data":{},"Score":1,"index":0,"score":1,"Answer":"","Remark":"","isEdit":true,"Version":"b5ad88d0455146cd952ac2d8d10393c0","TypeText":"主观题","HasRemark":false,"LibraryID":9710,"TemplateID":804917,"library_id":9710,"problem_id":6807,"ProblemType":5,"template_id":804917,"AllowResults":["text","pic","file"],"review_detail":{}},{"Body":"如果求解一个问题的串行程序总运行时间的92%对应的内容可以并行化,根据Amdahl定律,将该程序并行后其并行加速比将不超过[填空1]。","Type":"FillBlank","data":{},"Score":1,"index":0,"score":1,"Blanks":[{"Num":1,"Score":1,"Answers":["12.5"],"FuzzyMatch":false,"CaseSensitive":false}],"Remark":"","isEdit":false,"Version":"1590a980cfee41dfbd4cf8e41382183d","TypeText":"填空题","HasRemark":false,"LibraryID":9710,"max_retry":1,"TemplateID":806956,"library_id":9710,"problem_id":6809,"BlanksScore":[],"ProblemType":4,"template_id":806956,"review_detail":{},"OrderInsensitive":false},{"Body":"Pthreads编程使用的两个关键函数是pthread_create和pthread_join.下面两个程序语句中,通过哪个参数将获得线程函数Thread_fib的返回值?()
x1\n= pthread_create(&thread_handle, attr_p, Thread_fib, x2);
x3\n= pthread_join(_handle, x4);
","Type":"SingleChoice","data":{},"Score":0.5,"index":0,"score":0.5,"Answer":["D"],"Remark":"","isEdit":true,"Options":[{"key":"A","value":"x1
"},{"key":"B","value":"x2
"},{"key":"D","value":"x4
"},{"key":"C","value":"x3
"}],"Version":"3a7097f78ed14954bdb7e08e5546956f","TypeText":"单选题","HasRemark":false,"LibraryID":9710,"max_retry":1,"TemplateID":804348,"difficulty":1,"library_id":9710,"problem_id":6781,"ProblemType":1,"answerIndex":3,"template_id":804348,"review_detail":{}},{"Body":"Pthreads函数库不适用于下面的哪类操作系统?()\n\n
","Type":"SingleChoice","data":{},"Score":0.5,"index":0,"score":0.5,"Answer":["B"],"Remark":"","Options":[{"key":"C","value":"Mac\nOS
"},{"key":"D","value":"SUN\nSolaris
"},{"key":"A","value":"Linux
"},{"key":"B","value":"Windows
"}],"Version":"4471e141d4d24b96ae461a1bf0ae9bce","TypeText":"单选题","HasRemark":false,"LibraryID":"9710","max_retry":1,"TemplateID":804347,"difficulty":1,"library_id":"9710","problem_id":6780,"ProblemType":1,"template_id":804347},{"Body":"下面哪种方法不能在Pthreads程序中实现路障?()\n\n
","Type":"SingleChoice","data":{},"Score":0.5,"index":0,"score":0.5,"Answer":["D"],"Remark":"","Options":[{"key":"D","value":"仅使用条件变量
"},{"key":"A","value":"POSIX\nbarrier接口(pthread_barrier_init函数等等)
"},{"key":"C","value":"仅使用信号量
"},{"key":"B","value":"使用互斥锁与busy-waiting的组合
"}],"Version":"1dc9a6bc5c21444595c25a24928e79c2","TypeText":"单选题","HasRemark":false,"LibraryID":"9710","max_retry":1,"TemplateID":804352,"difficulty":1,"library_id":"9710","problem_id":6785,"ProblemType":1,"template_id":804352},{"Body":"对于下面部分CUDA代码, 如果采用GPU编译器进行编译后, 运行在Nvidia的GPU卡上(例如V100), 请问代码在运行中, in[]数组、out[]数组、temp[]数组、gindex、lindex、result会分别存在GPU硬件哪个存储层次, 并简单解释。
__global__ void stencil_1d (int *in, int *out) {
__shared__ int temp[_SIZE + 2 * RADIUS];
int gindex = threadIdx.x + blockIdx.x * blockDim.x;
int lindex = threadIdx.x + RADIUS;
temp[] = in[];
if (threadIdx.x < RADIUS) {
temp[lindex - RADIUS] = in[gindex - RADIUS];
temp[lindex + BLOCK_] = in[gindex + BLOCK_];
}
//Apply the stencil
int result = 0;
for (int offset = -RADIUS ; offset <= RADIUS ; offset++)
result += temp[lindex + offset];
// Store the result
out[gindex] = result;
}
下面哪种不属于分布式系统中的直接互连网络类型
环面网格
"},{"key":"D","value":"交叉开关网络
"},{"key":"A","value":"环
"},{"key":"C","value":"超立方体
"}],"Version":"0d387f2b771543b5aeb684f4655a6384","TypeText":"单选题","HasRemark":false,"LibraryID":9710,"max_retry":1,"TemplateID":804334,"library_id":9710,"problem_id":6771,"ProblemType":1,"answerIndex":3,"template_id":804334,"review_detail":{}},{"Body":"关于MPI的集合通讯命令,下面哪句话是错的?()\n\n
","Type":"SingleChoice","data":{},"Score":0.5,"index":0,"score":0.5,"Answer":["D"],"Remark":"","Options":[{"key":"C","value":"MPI_Scatter和MPI_Gather对数据都使用的是块划分(block\npartitioning)策略。
"},{"key":"A","value":"为了达到集合通讯的目的,所有的进程都要调用相同的集合通讯函数。
"},{"key":"B","value":"不同进程间集合通讯函数的匹配没有MPI_Send和MPI_Recv的匹配严格,主要基于调用顺序进行匹配。
"},{"key":"D","value":"如果数据个数不能被进程数整除,则无法用集合通讯函数来做数据散射(scatter)。
"}],"Version":"4d5d91ab17b940b0ada3d2c9502a7c73","TypeText":"单选题","HasRemark":false,"LibraryID":"9710","max_retry":1,"TemplateID":804345,"difficulty":1,"library_id":"9710","problem_id":6778,"ProblemType":1,"template_id":804345},{"Body":"下面用于描述程序负载特征的指标,哪个指标是体系结构无关的特征?()\n\n
","Type":"SingleChoice","data":{},"Score":0.5,"index":0,"score":0.5,"Answer":["A"],"Remark":"","Options":[{"key":"D","value":"处理器利用率
"},{"key":"B","value":"Cache缺失率
"},{"key":"A","value":"消息发送次数
"},{"key":"C","value":"分支预测成功率
"}],"Version":"20feb13279c24816ba61f72470dea76d","TypeText":"单选题","HasRemark":false,"LibraryID":"9710","max_retry":1,"TemplateID":804360,"difficulty":1,"library_id":"9710","problem_id":6793,"ProblemType":1,"template_id":804360},{"Body":"下面哪个MPI通讯函数,其输入数据和输出数据用同一个参数表示?()\n\n
","Type":"SingleChoice","data":{},"Score":0.5,"index":0,"score":0.5,"Answer":["B"],"Remark":"","Options":[{"key":"C","value":"MPI_Scatter
"},{"key":"A","value":"MPI_Reduce
"},{"key":"B","value":"MPI_Bcast
"},{"key":"D","value":"MPI_Gather
"}],"Version":"780438dbb3144385847be9822cbe03e1","TypeText":"单选题","HasRemark":false,"LibraryID":"9710","max_retry":1,"TemplateID":804344,"difficulty":1,"library_id":"9710","problem_id":6777,"ProblemType":1,"template_id":804344},{"Body":"下面哪个函数不是MPI集合通讯函数?()\n\n
","Type":"SingleChoice","data":{},"Score":0.5,"index":0,"score":0.5,"Answer":["C"],"Remark":"","Options":[{"key":"D","value":"MPI_Allgather
"},{"key":"C","value":"MPI_Wtime
"},{"key":"B","value":"MPI_Barrier
"},{"key":"A","value":"MPI_Reduce
"}],"Version":"31eb398c4f954897a9e360659e173179","TypeText":"单选题","HasRemark":false,"LibraryID":"9710","max_retry":1,"TemplateID":804346,"difficulty":1,"library_id":"9710","problem_id":6779,"ProblemType":1,"template_id":804346},{"Body":"下面哪一个是host端正确调用GPU\nkernel的代码(假设kernel没有参数)?
","Type":"SingleChoice","data":{},"Score":0.5,"index":0,"score":0.5,"Answer":["B"],"Remark":"","isEdit":true,"Options":[{"key":"A","value":"mykernel<M,N>
mykernel<<<M,N>>>
从线程安全性角度看,下面哪个C语言函数是不安全的?()\n\n
","Type":"SingleChoice","data":{},"Score":0.5,"index":0,"score":0.5,"Answer":["B"],"Remark":"","Options":[{"key":"A","value":"strtok_r
"},{"key":"B","value":"rand
"},{"key":"C","value":"localtime_r
"},{"key":"D","value":"strcat
"}],"Version":"13c0e464a52c45ccb3bbe121bc472960","TypeText":"单选题","HasRemark":false,"LibraryID":"9710","max_retry":1,"TemplateID":804353,"difficulty":1,"library_id":"9710","problem_id":6786,"ProblemType":1,"template_id":804353}],"has_problem_dict":false,"title":"2020年春季“高性能计算导论”期末试卷"}}