• [线下活动] [HC2021] 华为云开天aPaaS 上线,服务千万开发者,使能行业场景化创新
    9月25日,华为云在华为全联接2021发布四大生态策略,并宣布2022年投入1亿美元升级沃土云创计划。华为云开天aPaaS正式上线,实现经验即服务,使能行业场景化创新。  华为云全球生态部总裁康宁在主题演讲中表示:“华为云致力于成为智能世界云底座,秉承‘以客户为中心’,与伙伴共建、共享开天aPaaS,构筑企业应用分发云市场,聚合千行百业应用,服务千万开发者,激发无限商业潜能!” 发布四大生态策略,共建华为云生态华为云全球生态部总裁康宁发表主题演讲康宁介绍,面向客户痛点,聚焦行业的典型应用云化需求,华为云生态体系建设将从四个方面加大投入:第一,服务千万开发者加大开发者工具链投入,通过增强IDE和零低码协同,提升开发体验。通过创新IDE内核和AI智能技术的加持,华为云CloudIDE可以提供流畅、高效云上开发体验,已成为数十万开发者的生产力工具。将把AppCube和WeLink两个服务的入口和能力深度融合,为开发者打开数字新世界的入口。优化AppCube零代码开发体验,进一步降低门槛,无论是业务专家还是专业开发者都可以从WeLink开放平台进入AppCube进行开发;AppCube提供海量连接器,让开发者能更便捷地使用华为云能力,发挥设备和知识的最大价值。第二,开放创新华为云开天aPaaS平台能力,将华为自身数字化转型的经验开放为云上服务,联合伙伴共建行业aPaaS。第三,聚合千行百业的应用SaaS,持续投入资金和技术力量,帮助伙伴做好应用开发、上云迁移与持续运营,加速云原生与SaaS转型。第四,构建极致的应用分发、购买与服务体验,打造最佳企业应用分发平台。此外,华为云将云市场能力服务化,协助客户构建生态体系。目前已为上海城市数字治理应用市场提供支持,助力城市数字化转型。 沃土云创计划三大升级,与开发者共同成长康宁在演讲中表示,开发者是华为云帮助客户解决问题,实现价值的核心力量。面向开发者,华为云共提供13类云服务、128个Kits、超过3万个API,同时打造了14类开发工具和5个学习支持平台。为了更好地服务千万开发者,华为云在本次活动上宣布,2022年将投入1亿美金,对沃土云创计划进行三大升级: 第一,范围升级,计划的服务对象扩大到所有经过实名认证的企业开发者、高校开发者和个人开发者;第二,服务升级,新增开发者知识库与专属技术支持通道,开发问题12小时内响应,48小时内闭环。华为云在全球范围的100多个创新中心设置了开发者技术支持工程师,为开发者提供面对面的就近服务;第三, 权益升级,新增个人激励以及专业的开发者认证。开发者可以获得云服务资源、活动门票、培训课程、认证考试券等权益,并提供包括云原生、人工智能、大数据、移动开发、物联网在内的5个方向的专业开发者认证。 华为云开天aPaaS上线,使能行业场景化创新随着各行各业数字化转型的深入,华为云希望将自身及伙伴的行业经验以服务的方式提供给客户,快速满足行业应用场景的开发需求。华为云云服务产品组合管理部部长方国伟宣布开天aPaaS正式上线,他表示:“开天aPaaS,是华为云行业aPaaS,以开发者为核心,提供全流程、一站式开放平台,聚合行业能力,实现经验即服务,使能行业场景化创新。”华为云云服务产品组合管理部部长方国伟介绍开天aPaaS架构 华为云开天aPaaS聚合了128个Kits,超过2万个API,架构包含能力层、市场层、工作台三个部分:能力层,聚合行业领域Kit,将API、SDK和行业知识积累,一起变成一个个Kit,放到华为云上。市场层,通过资产中心沉淀伙伴资产, 实现商品交易变现,商品形态有API/SDK、行业数据模型、行业AI算法等,为行业客户提供服务。工作台,让多种Kits能力一起使用,快速集成各类应用,提升开发者的开发和使用体验。华为消费者云服务HMS Core平台部总经理望岳华为消费者云服务HMS Core平台部总经理望岳介绍,终端云在移动互联网领域的全球优秀实践目前已通过开天aPaaS开放出来,实现能力共享、生态共享。目前华为云开天aPaaS已构筑了金融、电商、互动媒体、汽车出行、医疗健康等多域能力。以金融领为例,开天aPaaS可以提供了包括安全隐私保护、便捷的体验以及AI创新能力。电商方面,通过华为的推送、AI和AR等能力,满足电商开发个性化需求,让交互更简单。汽车出行领域,华为提供包括地图导航、司乘安全以及车联网内容生态的能力。此外,华为云还与中康科技合作提供覆盖从医药研发、生产到零售的全生命周期的能力,使能医药产业加速数字化转型。­­­未来,华为云开天aPaaS计划在工业互联网和工业软件,城市和公共事业以及互联网服务能力上聚焦投入,实现“经验即服务”。华为云期待与更多的伙伴“凝心聚力、共筑开天”,使能行业场景化创新。转自:https://www.huaweicloud.com/news/2021/20210925090020033.html
  • [技术干货] OpenMP API的使用(一)
    ## 导语 OpenMP(Open Multi-Processing)作为一种共享内存的并行编程模型[1],是目前国际上最主流的异构混合并行编程架构之一,自1997年开始推出至今已升级5个主要版本,最新的标准规范为OpenMP API 5.2 [2]。OpenMP API定义了一个可移植、易扩展的编程模型,提供了一系列简单而又灵活的接口(指导语句)用于指导用户简化应用代码和提升性能。OpenMP普遍应用于科学计算领域,如理论物理、化学、材料、气象等领域的数值模拟计算。 毕昇编译器作为一款支持异构并行计算的高性能编译器,支持C/C++/Fortran语言的OpenMP API。目前毕昇编译器基本支持C/C++ OpenMP API 5.0 [3]和Fortran OpenMP API 4.5 [4],并持续提升支持最新标准规范。本文主要讲解毕昇编译器如何使用OpenMP API以及比较常用的指导语句。 ## 使用OpenMP API范例 这里给出一个简单的Fortran代码(test.f90),开启4个线程,并行打印每个线程的信息。 ```fortran program main use omp_lib integer :: id, num_threads call omp_set_num_threads(4) !设置默认创建线程数为4 !$omp parallel private(id) !创建4个线程 id = omp_get_thread_num() !获取当前线程ID num_threads = omp_get_num_threads() !获取当前创建的线程总数 print *, "Hello World Id ", id, " of ", num_threads, " num_threads" !$omp end parallel !结束parallel指导语句,退出并行区域 end ``` 使用毕昇编译器进行编译和运行,结果如下所示: ```shell $ flang test.f90 -fopenmp -o a.out $ ./a.out Hello World Id 3 of 4 num_threads Hello World Id 0 of 4 num_threads Hello World Id 1 of 4 num_threads Hello World Id 2 of 4 num_threads ``` 从结果可以看出,该用例创建了4个线程,并行执行7-9行代码,故print打印语句执行了4次,每个线程打印对应线程的ID。 ## OpenMP常用指导语句 ### parallel指令 parallel指令是最常用的OpenMP API之一,作用是创建一个线程组,parallel指令是进行并行控制的关键。根据OpenMP API标准规范,每个指导语句可以跟随一些子句,用于指导更加详细的功能,比如parallel指令可以跟随if,num_threads,private,firstprivate,shared,default,copyin,reduction,proc_bind,allocate子句。常用子句的详细使用指导如下: - if子句:`if ([parallel:] scalar-logical-expression)`,如果`scalar-logical-expression`的结果为真,则创建一个线程组,含多个线程;如果结果为假,则只创建一个线程。 - num_threads子句:`num_threads (scalar-integer-expression)`,在parallel并行区域内创建多个线程,线程数为`scalar-integer-expression`。 - private子句:`private(list)`,list为一系列变量,list所有变量在并行区域内为私有变量,即每个线程有一份私有拷贝,其它线程不可访问。 - firstprivate子句:`firstprivate(list)`,private子句的升级版,除了定义list所有变量在并行区域内为私有变量,还将进入parallel并行区域前的变量的值赋值给每个线程对应的私有变量。 - shared子句:`shared(list)`,list所有变量共享内存,所有线程均可访问,并不进行拷贝,与并行区域外的同名变量为同一个变量。 > 这里需要注意在并行区域结束处有一个隐含的同步操作,即所有线程都到达并行区域结束处,主线程才会继续执行并行区域外的代码。 ### worksharing-loop指令 worksharing-loop指令是最常用的OpenMP API之一,它的作用是对循环结构进行并行处理。C/C++的指导语句为`#pragma omp for [子句]`,Fortran的指导语句为`!$omp do`。worksharing-loop指令指导接下来的循环被并行执行,子句指导如何被并行执行。worksharing-loop指令可以跟随private,firstprivate,lastprivate,schedule,collapse,nowait,linear,reduction,ordered,allocate。常用子句的详细使用指导如下: - private子句:`private(list)`,用法同parallel的private子句,区别为list变量的范围为循环区域。 - firstprivate子句:`firstprivate(list)`,用法同parallel的private子句,区别为list变量的范围为循环区域。 - lastprivate子句:`lastprivate([lastprivate-modifier:] list)`,private子句的升级版,除了定义list所有变量在并行区域内为私有变量,还将循环最后一次迭代的子线程的私有变量的值赋值给并行区域外同名的原始变量。 - schedule子句:`schedule([modifier[, modifier]:]kind[, chunk_size])`,指导循环的迭代如何调度到创建的线程上,具体调度算法或将在后续文章中详述。 - collapse子句:`collapse(n)`,将指令下的前n层循环进行合并后展开为一个更大的循环,增加可以调度的循环总数。 - nowait子句:`nowait`,在指令结束处不生成隐含的同步操作。如果没有该子句,在指令结束处将生成隐含的同步操作。 ## parallel和worksharing-loop指令的使用范例 ```fortran program main use omp_lib integer, parameter :: N = 10 integer :: i, tid, a(N), b(N) do i = 1, N a(i) = -1 b(i) = -1 enddo !$omp parallel num_threads(N) !$omp do private(tid) firstprivate(a, b) lastprivate(b) do i = 1, N tid = omp_get_thread_num() a(i) = a(i) + i + tid b(i) = b(i) + i + tid if (i == 1 .or. i == N) print *, i, tid, a(i), b(i) enddo !$omp end do !$omp end parallel print *, a print *, b end ``` 该用例与下面的用例等价: ```fortran program main use omp_lib integer, parameter :: N = 10 integer :: i, tid, a(N), b(N) do i = 1, N a(i) = -1 b(i) = -1 enddo !$omp parallel do private(tid) firstprivate(a, b) lastprivate(b) num_threads(N) do i = 1, N tid = omp_get_thread_num() a(i) = a(i) + i + tid b(i) = b(i) + i + tid if (i == 1 .or. i == N) print *, i, tid, a(i), b(i) enddo !$omp end parallel do print *, a print *, b end ``` 使用毕昇编译器进行编译和运行,结果如下所示: ```shell $ flang test.f90 -fopenmp -o a.out $ ./a.out 1 0 0 0 10 9 18 18 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 18 ``` OpenMP指导语句使得该程序将a和b数组在循环内进行私有拷贝,并且将并行区域外的同名变量(a, b)的值(-1)拷贝进并行区域内,计算之后,最后一次迭代的b数组的值(b(10)=18)赋给并行区域外,除此之外,并未改变并行区域外的同名变量(a, b)的值。 ## 后记 毕昇编译器2.1.0版本已发布,进入[毕昇编译器网页](https://www.hikunpeng.com/developer/devkit/compiler/bisheng)下载毕昇编译器可以体验OpenMP并行编程,同时我们提供在线课程和沙箱实验供感兴趣的同学学习使用毕昇编译器。使用过程中遇到问题或者有经验分享,可以前往毕昇论坛或Compiler SIG微信群(添加如下微信小助手进Compiler SIG微信群)进行互动交流。 ![](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20222/26/1645856365210211009.jpg) ## 参考 [1] https://www.openmp.org/ [2] https://www.openmp.org/wp-content/uploads/OpenMP-API-Specification-5-2.pdf [3] https://www.openmp.org/spec-html/5.0/openmp.html [4] https://www.openmp.org/wp-content/uploads/openmp-4.5.pdf ------ 关注 **毕昇编译** 获取编译技术更多信息 ![](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20222/26/1645856377169914674.jpg)
  • [技术干货] AOC中的PYTHON-API
    我们在制作SND、GND或SSP插件包时,需要编写python代码,从而实现设备纳管或业务映射。AOC为python代码的编写提供了SDK,其中包含了大量常用的PYTHON API接口,开发者可以根据需要,直接调用特定的包、类或者方法,再根据实际情况进行改写,从而降低代码开发的难度与工作量。SDK文件可以在社区的资源下载页面进行下载:https://devzone.huawei.com/community/flowchart/resource/downloadDocFile?type=downloadDocFile&id=16 例如下图中,需要制作一个L3VPN的业务包,引入的头文件如红框中所示: API介绍AOC提供的PYTHON-API,名称及含义如下所示:aoc package——提供基础信息,例如映射接口、RPC操作能力等。base package——提供自定义运维操作,例如定义action、描述AOC上下文信息、提供映射接口、提供RPC操作能力等。common.upgrade package——提供插件包升级的定制处理能力。event package——提供自定义接收告警事件的处理。exception package——提供不同场景返回的异常。gnd package——提供GND层与设备通信的能力,例如GND层RPC接口、设备告警处理能力、定义GND action、采集设备链路信息、处理NETCONF通知、定制端口采集方法等。ncs package——提供配置映射功能的主接口,例如供Jinja模板调用的过滤方法、映射代码的数据结构、模板渲染接口、插件包验证等。snd package——定义设备通信的能力,支持CLI、NETCONF、RESTCONF等多种协议。sys package——提供系统能力,例如告警管理能力、事件管理能力、获取设备配置或运行数据、获取一致性数据、数据存储、获取设备信息、日志记录、事务配置接口等。sys.innject package——提供调用外部接口与用户业务注入接口。 API调用例如:aoc.sys.devicemgr中的“query_basic_data_from_db”方法可以查询设备信息:调用结果如下所示: 这样就可以使用系统预置的API直接查询,无需重新编写代码。 API附件清单那么AOC提供了多少API模块,有多少类可供选择,调用时是否担心会遗漏?笔者列了一份API清单,包括所有的包、模块和定义的类,有需要可以下载附件查看。根据清单目录定位后,可以在插件包API中查看详细描述与其下定义的方法。
  • [问题求助] 【香港启德IOC】【ROMA LiveData】函数API中请求第三方https地址不通
    【功能模块】LiveData-->函数API开发【操作步骤&问题现象】在函数API中调用南向系统的接口,请求地址是https的,一直不通原因分析:1.南向系统需要添加ROAM服务白名单,已添加2.请求时需忽略https证书校验,已忽略(https://bbs.huaweicloud.com/forum/forum.php?mod=viewthread&tid=180222)请协助排查,13259109371,比较紧急。【截图信息】【日志信息】(可选,上传日志内容或者附件)
  • [技术干货] 【ROMA】【API网关】添加白名单说明
    最近收到很多小伙伴在ROMA中新增应用接口或者调试基线业务的时候,最后都需要将API接口部署到API网关。部署API网关过程中,添加白名单需要用管理员权限,这时候大家就会求助平台这边处理。 那求助平台您需要写清楚以下信息,这样平台可以一次性帮忙配置好。提交申请添加API网关白名单需要信息如下1,环境说明,例如是https://studioroma.e.huawei.com/2,您的租户名称,项目名称,应用ID(或者名称),接口名称3,您的白名单IP地址,要提供全,要是您使用的公网网络IP4,提交BBS,说明您需要添加的原因,做了什么功能,干什么用
  • [技术干货] 【ROMA】【API网关】添加白名单说明
    最近收到很多小伙伴提交申请添加API网关白名单,那么您提交申请需要准备什么呢1,环境说明,例如是https://studioroma.e.huawei.com/2,您的租户名称,项目名称,应用ID(或者名称),接口名称3,您的白名单IP地址,要提供全,要是您使用的公网网络IP4,提交BBS,说明您需要添加的原因,做了什么功能,干什么用
  • [技术干货] 学会在Vue项目中插入高德地图JS API与地图的相关设置,看这一篇就够了~(保姆级精简教学)[转载]
    转载自:原文链接:https://blog.csdn.net/weixin_53072519/article/details/122556672高德地图API官网:高德开放平台 | 高德地图API。由于博主是基于前端 Vue 框架进行开发的,所以针对地图 JavaScript API 结合 Vue 展开介绍。一、案例效果二、开发准备        需要注意想要使用 JS API 必须注册账号并获取 key 值。1. 注册高德开放平台账号        正常输入个人信息注册即可。2. 创建应用添加 key 值        注册成功之后,进入控制台,然后点击创建新应用;        填写名称应用名称和类型之后就可以看到已创建的应用了;        接下来点击“添加”为应用添加 key 值;        注意此处我们应选择 Web 端(JS API);        点击提交后,key 值获取成功。三、项目中使用地图组件1. npm 获取高德地图 API        首先在 Vue 项目中通过命令 npm i @amap/amap-jsapi-loader --save 获取高德地图 API; 下载成功之后就可以在自己的项目中使用地图 API 了。2. 页面中使用地图 API(案例)(1)新建 .vue 页面文件并设置容器<template>  <!--地图容器-->  <div id="container"></div></template> <script>  export default {    name: "gaode"  }</script> <style scoped>  #container {    width: 80%;    height: 400px;    margin: 100px auto;    border: 2px solid red;  }</style>(2)在页面中引入 amap-jsapi-loader 并初始化 map 对象        样式设置完后在页面中引入 amap-jsapi-loader 并初始化 map 对象;此处需注意 Vue2 和 Vue3 中引入与初始化方式都是不同的,注意自己的 Vue 版本。查看 Vue 版本在控制台中输入 npm list vue 命令即可;如下,博主用的是 vue2。vue2 方式(下文均以此方式为例):<script>  import AMapLoader from '@amap/amap-jsapi-loader'; //引入   export default {    name: "gaode",    data() {      return {        map: null //初始化 map 对象      }    }  }</script>vue3 方式:<script>  import {shallowRef} from '@vue/reactivity' //引入   export default {    name: "gaode",    setup() {      const map = shallowRef(null);      return {        map,      }    },  }</script>(3)定义地图初始化函数 initMap 并调用methods: {      initMap() {        AMapLoader.load({          key: "ed2ea36f8564541569c370254845d93d", //此处填入我们注册账号后获取的Key          version: "2.0", //指定要加载的 JSAPI 的版本,缺省时默认为 1.4.15          plugins: [''], //需要使用的的插件列表,如比例尺'AMap.Scale'等        }).then((AMap) => {          this.map = new AMap.Map("container", { //设置地图容器id            viewMode: "3D", //是否为3D地图模式            zoom: 5, //初始化地图级别            center: [105.602725, 37.076636], //初始化地图中心点位置          });        }).catch(e => {          console.log(e);        })      },    },    mounted() {      //挂载阶段调用,DOM初始化完成进行地图初始化      this.initMap();    }3. 完整代码+详细注释<template>  <div>    <div id="container"></div>  </div></template> <script>  import AMapLoader from '@amap/amap-jsapi-loader';   export default {    name: "gaode",    data() {      return {        map: null //初始化 map 对象      }    },    methods: {      initMap() {        AMapLoader.load({          key: "ed2ea36f8564541569c370254845d93d", //此处填入我们注册账号后获取的Key          version: "2.0", //指定要加载的 JSAPI 的版本,缺省时默认为 1.4.15          plugins: [''], //需要使用的的插件列表,如比例尺'AMap.Scale'等        }).then((AMap) => {          this.map = new AMap.Map("container", { //设置地图容器id            viewMode: "3D", //是否为3D地图模式            zoom: 5, //初始化地图级别            center: [105.602725, 37.076636], //初始化地图中心点位置          });        }).catch(e => {          console.log(e);        })      },    },    mounted() {      //DOM初始化完成进行地图初始化      this.initMap();    }  }</script> <style>  #container {    width: 80%;    height: 400px;    margin: 100px auto;    border: 1px solid red;  }</style>四、在地图中添加覆盖物、图层、插件、事件等属性        经过前三步的配置,一个最基础的高德地图就成型了,但实际应用中仅仅这样肯定是不行的,项目中需求会有很多。所以当我们想要改变它的样式,或者是在地图上添加一些其他属性如图层、点标记、点击事件时,只需在以上代码 this.map = new AMap.Map("container", { } 的同级位置添加相关代码即可。我们简单举几个例子:1. 添加图层        默认情况下,地图只显示标准底图,如需要叠加别的图层,可以通过map.add方法添加图层。我们试着添加一个卫星图层 TileLayer.Satellite,如下:效果如下,原始地图变为卫星地图:2. 在地图中使用插件(地图控件)        JS API 提供了众多的插件功能,这些功能不会主动随着 JSAPI 主体资源下发,需要引入之后才能使用这些插件的功能。在使用插件之前我们需要先将各个插件引入到 plugin 数组中,随后使用 addControl 添加至地图中。        如下代码添加了图层切换、比例尺和鹰眼三个插件:效果如下:3. 其他设置        方法就是以上介绍的方法,大同小异。掌握方法后再设置花里胡哨也就不在话下了,更多属性与插件请参见 JS API 官网:概述-地图 JS API v2.0 | 高德地图API高德开放平台官网https://lbs.amap.com/api/jsapi-v2/summary
  • [问题求助] API的码豆任务不见了?
    啥情况?
  • [问题求助] 【智慧园区appcube产品】【Roma连接器功能】同步api报错
    所属项目:春风动力项目问题描述:【智慧园区appcube产品】【Roma连接器功能】同步api报错在数字平台,点击同步api,报了这个错误,点击其它应用也是一样报这个错误,麻烦你有空帮忙看一下是什么原因【操作步骤&问题现象】1、appcube点击roma链接器,选择应用,点击同步api,报错提示没有权限2、问题总结:可以同步roma应用,但是无法同步应用内的api接口,自己创建的应用或者系统预置的应用点击进去,点击同步api都会报错【截图信息】
  • [问题求助] api日常任务完不成
    为啥我这3个任务完不成,有人跟我一样吗,发帖子图片也上传不了,唉
  • [交流吐槽] API的任务已经两周多完成不了。65豆豆
    大家API的任务可以正常完成嘛。求助
  • [问题求助] 【Roma产品】【LiveData集成第三方接口功能】 集成第三方接口,API调测失败, 显示test api fail ...
    【功能模块】   roma版本为 ROMA 20.0.0.SPC13LiveData1、api 开发2、api测试【操作步骤&问题现象】1、集成第三方停车系统接口,发起api测试2、测试结果:500 , 错误信息, Test api fail. Please check log, 日志找不到【截图信息】API核心代码如下:API 测试结果如下:日志信息:【日志信息】(可选,上传日志内容或者附件)
  • [交流吐槽] API任务完成不了
    分组都删除重新来了,还是不行
  • [交流吐槽] API网关的3个任务都不好用了
    上周任务的时候API调试就不好用,这周直接3个任务都没反应了
  • [问题求助] 【ROMA】【API绿色通道】ROMA API添加绿色通道后重新部署和授权API后绿色通道功能失效
    【功能模块】【操作步骤&问题现象】ROMA API添加绿色通道后可不添加X-HW-ID和X-HW-APPKEY可以访问接口,但是重新部署和授权API后绿色通道功能失效,需要添加两个参数才可以访问【截图信息】【日志信息】(可选,上传日志内容或者附件)
总条数:1404 到第
上滑加载中