首页 > 最新文献

X10 '13最新文献

英文 中文
A tutorial on X10 and its implementation 关于X10及其实现的教程
Pub Date : 2013-06-20 DOI: 10.1145/2481268.2481272
D. Grove
This talk will present a high-level introduction to the X10 language and its implementation with the goal of ensuring a common base knowledge of X10 by all workshop attendees. The X10 language will be introduced primarily via code examples with a focus on X10's support for concurrency and distribution via the APGAS (Asynchronous Partitioned Global Address Space) programming model. The discussion of the X10 implementation will cover the structure of the X10 compiler and the X10 runtime system. The talk is designed to be interactive and will include time for questions and answers and general discussion.
本次演讲将对X10语言及其实现进行高层次的介绍,目的是确保所有研讨会参与者对X10有一个共同的基础知识。我们将主要通过代码示例介绍X10语言,重点介绍X10通过APGAS(异步分区全局地址空间)编程模型对并发性和分布的支持。关于X10实现的讨论将涵盖X10编译器和X10运行时系统的结构。讲座的设计是互动的,将包括问答和一般性讨论的时间。
{"title":"A tutorial on X10 and its implementation","authors":"D. Grove","doi":"10.1145/2481268.2481272","DOIUrl":"https://doi.org/10.1145/2481268.2481272","url":null,"abstract":"This talk will present a high-level introduction to the X10 language and its implementation with the goal of ensuring a common base knowledge of X10 by all workshop attendees. The X10 language will be introduced primarily via code examples with a focus on X10's support for concurrency and distribution via the APGAS (Asynchronous Partitioned Global Address Space) programming model. The discussion of the X10 implementation will cover the structure of the X10 compiler and the X10 runtime system. The talk is designed to be interactive and will include time for questions and answers and general discussion.","PeriodicalId":406965,"journal":{"name":"X10 '13","volume":"37 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-06-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122290989","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Invasive computing in HPC with X10 X10在HPC中的侵入性计算
Pub Date : 2013-06-20 DOI: 10.1145/2481268.2481274
H. Bungartz, C. Riesinger, Martin Schreiber, G. Snelting, Andreas Zwinkau
High performance computing with thousands of cores relies on distributed memory due to memory consistency reasons. The resource management on such systems usually relies on static assignment of resources at the start of each application. Such a static scheduling is incapable of starting applications with required resources being used by others since a reduction of resources assigned to applications without stopping them is not possible. This lack of dynamic adaptive scheduling leads to idling resources until the remaining amount of requested resources gets available. Additionally, applications with changing resource requirements lead to idling or less efficiently used resources. The invasive computing paradigm suggests dynamic resource scheduling and applications able to dynamically adapt to changing resource requirements. As a case study, we developed an invasive resource manager as well as a multigrid with dynamically changing resource demands. Such a multigrid has changing scalability behavior during its execution and requires data migration upon reallocation due to distributed memory systems. To counteract the additional complexity introduced by the additional interfaces, e. g. for data migration, we use the X10 programming language for improved programmability. Our results show improved application throughput and the dynamic adaptivity. In addition, we show our extension for the distributed arrays of X10 to support data migration.
由于内存一致性的原因,数千核的高性能计算依赖于分布式内存。此类系统上的资源管理通常依赖于每个应用程序开始时的静态资源分配。这种静态调度无法启动其他应用程序正在使用所需资源的应用程序,因为不可能在不停止应用程序的情况下减少分配给应用程序的资源。缺乏动态自适应调度会导致资源闲置,直到剩余的请求资源可用为止。此外,资源需求不断变化的应用程序会导致资源闲置或使用效率降低。侵入式计算范式建议动态资源调度和应用程序能够动态适应不断变化的资源需求。作为一个案例研究,我们开发了一个侵入式资源管理器以及一个具有动态变化资源需求的多网格。这种多网格在执行过程中具有不断变化的可伸缩性行为,并且由于分布式内存系统,需要在重新分配时进行数据迁移。为了抵消额外接口(例如数据迁移)带来的额外复杂性,我们使用X10编程语言来改进可编程性。结果表明,该方法提高了应用程序的吞吐量和动态适应性。此外,我们还展示了用于支持数据迁移的X10分布式数组的扩展。
{"title":"Invasive computing in HPC with X10","authors":"H. Bungartz, C. Riesinger, Martin Schreiber, G. Snelting, Andreas Zwinkau","doi":"10.1145/2481268.2481274","DOIUrl":"https://doi.org/10.1145/2481268.2481274","url":null,"abstract":"High performance computing with thousands of cores relies on distributed memory due to memory consistency reasons. The resource management on such systems usually relies on static assignment of resources at the start of each application. Such a static scheduling is incapable of starting applications with required resources being used by others since a reduction of resources assigned to applications without stopping them is not possible. This lack of dynamic adaptive scheduling leads to idling resources until the remaining amount of requested resources gets available. Additionally, applications with changing resource requirements lead to idling or less efficiently used resources. The invasive computing paradigm suggests dynamic resource scheduling and applications able to dynamically adapt to changing resource requirements.\u0000 As a case study, we developed an invasive resource manager as well as a multigrid with dynamically changing resource demands. Such a multigrid has changing scalability behavior during its execution and requires data migration upon reallocation due to distributed memory systems.\u0000 To counteract the additional complexity introduced by the additional interfaces, e. g. for data migration, we use the X10 programming language for improved programmability. Our results show improved application throughput and the dynamic adaptivity. In addition, we show our extension for the distributed arrays of X10 to support data migration.","PeriodicalId":406965,"journal":{"name":"X10 '13","volume":"27 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-06-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132073384","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 14
Java interoperability in managed X10 托管X10中的Java互操作性
Pub Date : 2013-06-20 DOI: 10.1145/2481268.2481278
Mikio Takeuchi, D. Cunningham, D. Grove, V. Saraswat
The ability to smoothly interoperate with other programming languages is an essential feature to reduce the barriers to adoption for new languages such as X10. Compiler-supported interoperability between Managed X10 and Java was initially previewed in X10 version 2.2.2 and is now fully supported in X10 version 2.3. In this paper we describe and motivate the Java interoperability features of Managed X10. For calling Java from X10, external linkage for Java code is explained. For calling X10 from Java, the current implementation of Java code generation is explained. An unusual aspect of X10 is that, unlike most other JVM-hosted languages, X10 is also implemented via compilation to C++ (Native X10). The requirement to support multiple execution platforms results in unique challenges to the design of cross-language interoperability. In particular, we discovered that a single top exception type that covers all exception types from source and all target languages is needed as a native type of the source language for portable exception handling. This realization motivated both minor changes in the X10 language specification and an extensive redesign of the X10 core class library for X10 2.3.
能够顺利地与其他编程语言进行互操作是减少采用X10等新语言的障碍的基本特性。Managed X10和Java之间编译器支持的互操作性最初在X10 2.2.2版本中进行了预览,现在在X10 2.3版本中得到了完全支持。在本文中,我们描述并激发了Managed X10的Java互操作性特性。对于从X10调用Java,解释了Java代码的外部链接。对于从Java调用X10,本文解释了Java代码生成的当前实现。X10的一个不同寻常的方面是,与大多数其他jvm托管语言不同,X10也是通过编译到c++(原生X10)来实现的。支持多个执行平台的需求给跨语言互操作性的设计带来了独特的挑战。特别是,我们发现需要一个覆盖源语言和所有目标语言的所有异常类型的顶级异常类型作为可移植异常处理的源语言的本机类型。这一实现促使X10语言规范发生了微小的变化,并为X10 2.3对X10核心类库进行了广泛的重新设计。
{"title":"Java interoperability in managed X10","authors":"Mikio Takeuchi, D. Cunningham, D. Grove, V. Saraswat","doi":"10.1145/2481268.2481278","DOIUrl":"https://doi.org/10.1145/2481268.2481278","url":null,"abstract":"The ability to smoothly interoperate with other programming languages is an essential feature to reduce the barriers to adoption for new languages such as X10. Compiler-supported interoperability between Managed X10 and Java was initially previewed in X10 version 2.2.2 and is now fully supported in X10 version 2.3. In this paper we describe and motivate the Java interoperability features of Managed X10. For calling Java from X10, external linkage for Java code is explained. For calling X10 from Java, the current implementation of Java code generation is explained.\u0000 An unusual aspect of X10 is that, unlike most other JVM-hosted languages, X10 is also implemented via compilation to C++ (Native X10). The requirement to support multiple execution platforms results in unique challenges to the design of cross-language interoperability. In particular, we discovered that a single top exception type that covers all exception types from source and all target languages is needed as a native type of the source language for portable exception handling. This realization motivated both minor changes in the X10 language specification and an extensive redesign of the X10 core class library for X10 2.3.","PeriodicalId":406965,"journal":{"name":"X10 '13","volume":"38 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-06-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121102266","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 4
Hybrid parallel task placement in X10 X10中的混合并行任务放置
Pub Date : 2013-06-20 DOI: 10.1145/2481268.2481277
Jeeva Paudel, O. Tardieu, J. N. Amaral
This paper presents a hybrid parallel task-placement strategy that combines work stealing and work dealing to improve workload distribution across nodes in distributed shared-memory machines. Existing work-dealing-based load balancers suffer from large performance penalties resulting from excessive task migration and from excessive communication among the nodes to determine the target node for a migrated task. This work employs a simple heuristic to determine the load status of a node and also to detect a good target for migration of tasks. Experimental evaluations on applications chosen from the Cowichan and Lonestar suites demonstrate a speedup, with the proposed approach, in the range of 2% to 16% on a cluster of 128 cores over the state-of-the-art work-stealing scheduler.
本文提出了一种结合工作窃取和工作处理的混合并行任务放置策略,以改善分布式共享内存机器节点间的工作负载分布。现有的基于工作处理的负载平衡器由于过度的任务迁移和节点之间过度的通信而遭受很大的性能损失,以确定迁移任务的目标节点。这项工作采用了一种简单的启发式方法来确定节点的负载状态,并检测任务迁移的良好目标。对从Cowichan和Lonestar套件中选择的应用程序的实验评估表明,与最先进的工作窃取调度程序相比,在128核的集群上,采用所提出的方法可以提高2%到16%的速度。
{"title":"Hybrid parallel task placement in X10","authors":"Jeeva Paudel, O. Tardieu, J. N. Amaral","doi":"10.1145/2481268.2481277","DOIUrl":"https://doi.org/10.1145/2481268.2481277","url":null,"abstract":"This paper presents a hybrid parallel task-placement strategy that combines work stealing and work dealing to improve workload distribution across nodes in distributed shared-memory machines. Existing work-dealing-based load balancers suffer from large performance penalties resulting from excessive task migration and from excessive communication among the nodes to determine the target node for a migrated task. This work employs a simple heuristic to determine the load status of a node and also to detect a good target for migration of tasks.\u0000 Experimental evaluations on applications chosen from the Cowichan and Lonestar suites demonstrate a speedup, with the proposed approach, in the range of 2% to 16% on a cluster of 128 cores over the state-of-the-art work-stealing scheduler.","PeriodicalId":406965,"journal":{"name":"X10 '13","volume":"16 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-06-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127787755","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 9
X10 at scale X10按比例
Pub Date : 2013-06-20 DOI: 10.1145/2481268.2481276
O. Tardieu
X10 is an open-source imperative concurrent object-oriented programming language developed by IBM Research to ease the programming of scalable concurrent and distributed applications. In this talk, I will report and reflect on our experience running HPC application kernels and graph algorithms implemented in X10 on a Petaflop IBM Power 775 supercomputer (with up to 55,000 Power7 cores). I will discuss design and implementation decisions that make it possible to achieve competitive performance at scale while retaining X10's productivity. In particular, I'll describe our implementation of the Unbalanced Tree Search benchmark (UTS), which illustrates X10's handling of irregular parallelism.
X10是一种开源的命令式并发面向对象编程语言,由IBM Research开发,用于简化可伸缩并发和分布式应用程序的编程。在这次演讲中,我将报告和反思我们在千万亿次IBM Power 775超级计算机(多达55,000个Power7内核)上运行HPC应用程序内核和X10实现的图形算法的经验。我将讨论设计和实现决策,这些决策可以在保持X10生产力的同时,在规模上实现具有竞争力的性能。特别地,我将描述我们对不平衡树搜索基准(UTS)的实现,它演示了X10对不规则并行性的处理。
{"title":"X10 at scale","authors":"O. Tardieu","doi":"10.1145/2481268.2481276","DOIUrl":"https://doi.org/10.1145/2481268.2481276","url":null,"abstract":"X10 is an open-source imperative concurrent object-oriented programming language developed by IBM Research to ease the programming of scalable concurrent and distributed applications. In this talk, I will report and reflect on our experience running HPC application kernels and graph algorithms implemented in X10 on a Petaflop IBM Power 775 supercomputer (with up to 55,000 Power7 cores). I will discuss design and implementation decisions that make it possible to achieve competitive performance at scale while retaining X10's productivity. In particular, I'll describe our implementation of the Unbalanced Tree Search benchmark (UTS), which illustrates X10's handling of irregular parallelism.","PeriodicalId":406965,"journal":{"name":"X10 '13","volume":"28 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-06-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125347256","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Achieving load-balancing in power system parallel contingency analysis using X10 programming language 利用X10编程语言实现电力系统并行事故分析中的负载均衡
Pub Date : 2013-06-20 DOI: 10.1145/2481268.2481275
S. Khaitan, J. McCalley
Due to recent trends of expansion and deregulation in power systems, the stress level of power systems has increased which has highlighted the importance of conducting stability analysis. Further, due to increasing emphasis on analyzing N -- k contingency, the number of contingencies which are required to be analyzed has greatly increased. To address this challenge, researchers have used parallel computing resources, however, in absence of efficient load-balanced scheduling, parallelization leads to wastage of computation resources. In this paper, we present an approach to parallelize power system contingency analysis using X10 language. We discuss the features of X10 which enable us to achieve high performance gains. Our approach is evaluated using a large 13029-bus power systems. We parallelize contingency analysis over 2, 4, 8 and 16 threads and use efficient work-stealing algorithm to achieve load-balancing. The results have shown that our approach scales effectively with the number of cores and provides large computational gains. Also, it outperforms a conventional scheduling technique, namely master-slave scheduling.
由于近年来电力系统的扩张和放松管制的趋势,电力系统的压力水平不断增加,这就突出了进行稳定性分析的重要性。此外,由于越来越重视分析N—k偶然性,需要分析的偶然性数量大大增加。为了解决这一挑战,研究人员使用了并行计算资源,然而,在缺乏有效的负载平衡调度的情况下,并行化导致了计算资源的浪费。本文提出了一种利用X10语言并行化电力系统偶然性分析的方法。我们将讨论使我们能够获得高性能的X10特性。我们的方法是使用大型13029总线电源系统进行评估的。我们在2、4、8和16个线程上并行化偶然性分析,并使用高效的偷工算法来实现负载平衡。结果表明,我们的方法可以有效地扩展内核数量,并提供巨大的计算增益。此外,它优于传统的调度技术,即主从调度。
{"title":"Achieving load-balancing in power system parallel contingency analysis using X10 programming language","authors":"S. Khaitan, J. McCalley","doi":"10.1145/2481268.2481275","DOIUrl":"https://doi.org/10.1145/2481268.2481275","url":null,"abstract":"Due to recent trends of expansion and deregulation in power systems, the stress level of power systems has increased which has highlighted the importance of conducting stability analysis. Further, due to increasing emphasis on analyzing N -- k contingency, the number of contingencies which are required to be analyzed has greatly increased. To address this challenge, researchers have used parallel computing resources, however, in absence of efficient load-balanced scheduling, parallelization leads to wastage of computation resources. In this paper, we present an approach to parallelize power system contingency analysis using X10 language. We discuss the features of X10 which enable us to achieve high performance gains. Our approach is evaluated using a large 13029-bus power systems. We parallelize contingency analysis over 2, 4, 8 and 16 threads and use efficient work-stealing algorithm to achieve load-balancing.\u0000 The results have shown that our approach scales effectively with the number of cores and provides large computational gains. Also, it outperforms a conventional scheduling technique, namely master-slave scheduling.","PeriodicalId":406965,"journal":{"name":"X10 '13","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-06-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130502489","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 5
First steps to compiling Matlab to X10 编译Matlab到X10的第一步
Pub Date : 2013-06-20 DOI: 10.1145/2481268.2481273
Vineet Kumar, L. Hendren
Matlab is a popular dynamic array-based language commonly used by students, scientists and engineers, who appreciate the interactive development style, the rich set of array operators, the extensive builtin library, and the fact that they do not have to declare static types. Even though these users like to program in Matlab, their computations are often very compute-intensive and are potentially very good applications for high-performance languages such as X10. To provide a bridge between Matlab and X10, we are developing MiX10, a source-to-source compiler that translates Matlab to X10. This paper provides an overview of the initial design of the MiX10 compiler, presents a template-based specialization approach to compiling the builtin Matlab operators, and provides translation rules for the key sequential Matlab constructs with a focus on those which are challenging to convert to semantically-equivalent X10. An initial core compiler has been implemented, and preliminary results are provided.
Matlab是一种流行的基于动态数组的语言,经常被学生、科学家和工程师使用,他们喜欢交互式开发风格、丰富的数组运算符集、广泛的内置库以及不必声明静态类型的事实。尽管这些用户喜欢在Matlab中编程,但他们的计算通常是非常计算密集型的,并且对于X10等高性能语言来说可能是非常好的应用程序。为了提供Matlab和X10之间的桥梁,我们正在开发MiX10,这是一个将Matlab转换为X10的源到源编译器。本文概述了MiX10编译器的初始设计,提出了一种基于模板的专门化方法来编译内置的Matlab运算符,并提供了关键顺序Matlab结构的翻译规则,重点是那些具有挑战性的转换为语义等效的X10。已经实现了初始核心编译器,并提供了初步结果。
{"title":"First steps to compiling Matlab to X10","authors":"Vineet Kumar, L. Hendren","doi":"10.1145/2481268.2481273","DOIUrl":"https://doi.org/10.1145/2481268.2481273","url":null,"abstract":"Matlab is a popular dynamic array-based language commonly used by students, scientists and engineers, who appreciate the interactive development style, the rich set of array operators, the extensive builtin library, and the fact that they do not have to declare static types. Even though these users like to program in Matlab, their computations are often very compute-intensive and are potentially very good applications for high-performance languages such as X10.\u0000 To provide a bridge between Matlab and X10, we are developing MiX10, a source-to-source compiler that translates Matlab to X10. This paper provides an overview of the initial design of the MiX10 compiler, presents a template-based specialization approach to compiling the builtin Matlab operators, and provides translation rules for the key sequential Matlab constructs with a focus on those which are challenging to convert to semantically-equivalent X10. An initial core compiler has been implemented, and preliminary results are provided.","PeriodicalId":406965,"journal":{"name":"X10 '13","volume":"93 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-06-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131800060","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 7
期刊
X10 '13
全部 Acc. Chem. Res. ACS Applied Bio Materials ACS Appl. Electron. Mater. ACS Appl. Energy Mater. ACS Appl. Mater. Interfaces ACS Appl. Nano Mater. ACS Appl. Polym. Mater. ACS BIOMATER-SCI ENG ACS Catal. ACS Cent. Sci. ACS Chem. Biol. ACS Chemical Health & Safety ACS Chem. Neurosci. ACS Comb. Sci. ACS Earth Space Chem. ACS Energy Lett. ACS Infect. Dis. ACS Macro Lett. ACS Mater. Lett. ACS Med. Chem. Lett. ACS Nano ACS Omega ACS Photonics ACS Sens. ACS Sustainable Chem. Eng. ACS Synth. Biol. Anal. Chem. BIOCHEMISTRY-US Bioconjugate Chem. BIOMACROMOLECULES Chem. Res. Toxicol. Chem. Rev. Chem. Mater. CRYST GROWTH DES ENERG FUEL Environ. Sci. Technol. Environ. Sci. Technol. Lett. Eur. J. Inorg. Chem. IND ENG CHEM RES Inorg. Chem. J. Agric. Food. Chem. J. Chem. Eng. Data J. Chem. Educ. J. Chem. Inf. Model. J. Chem. Theory Comput. J. Med. Chem. J. Nat. Prod. J PROTEOME RES J. Am. Chem. Soc. LANGMUIR MACROMOLECULES Mol. Pharmaceutics Nano Lett. Org. Lett. ORG PROCESS RES DEV ORGANOMETALLICS J. Org. Chem. J. Phys. Chem. J. Phys. Chem. A J. Phys. Chem. B J. Phys. Chem. C J. Phys. Chem. Lett. Analyst Anal. Methods Biomater. Sci. Catal. Sci. Technol. Chem. Commun. Chem. Soc. Rev. CHEM EDUC RES PRACT CRYSTENGCOMM Dalton Trans. Energy Environ. Sci. ENVIRON SCI-NANO ENVIRON SCI-PROC IMP ENVIRON SCI-WAT RES Faraday Discuss. Food Funct. Green Chem. Inorg. Chem. Front. Integr. Biol. J. Anal. At. Spectrom. J. Mater. Chem. A J. Mater. Chem. B J. Mater. Chem. C Lab Chip Mater. Chem. Front. Mater. Horiz. MEDCHEMCOMM Metallomics Mol. Biosyst. Mol. Syst. Des. Eng. Nanoscale Nanoscale Horiz. Nat. Prod. Rep. New J. Chem. Org. Biomol. Chem. Org. Chem. Front. PHOTOCH PHOTOBIO SCI PCCP Polym. Chem.
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1