Collaborative Research: SHF: Medium: Bringing Python Up to Speed
Collaborative Research: SHF: Medium: Bringing Python Up to Speed
批准号:
1955610
负责人:
Leonidas Lampropoulos
金额:
$37.44万
依托单位国家:
美国
项目类别:
Standard Grant
财政年份:
2020
资助国家:
美国
项目状态:
已结题
起止时间:
2020-07-01 至 2023-09-30
中文摘要
Python编程语言是当今最流行的计算机编程语言之一,用于编写从Web服务到数据分析再到机器学习的各种领域的软件。不幸的是,Python的轻量级和灵活性--这是其吸引力的一个主要来源--可能会导致严重的性能和正确性问题--与用传统编程语言(如C和C++)编写的优化代码相比,Python程序可能会遭受高达60,000倍的速度减慢,并且可能需要多一个数量级的内存。Python灵活的“动态”特性也使其程序容易出错,许多编码错误只有在开发后期或部署后才会被发现。作为一种“粘合语言”--用来集成用C或C++编写的不同组件并与之交互--的频繁使用使许多Python程序暴露于这些语言的独特危险之中,包括易受基于内存损坏的安全漏洞的影响。这个项目旨在通过开发新的Python技术来解决这些问题,包括新的性能分析工具、内存减少和速度提高的优化(包括对多核执行的支持)、自动化软件测试框架和公共基准测试以驱动它们的评估。这个项目将开发(1)性能分析工具,帮助Python程序员准确地识别速度减慢的来源;(2)自动识别可以通过调用C/C++库来替换的代码;(3)解锁Python线程中的并行性的方法,由于全局解释程序锁,当前必须按顺序执行;以及(4)显著减少Python应用程序的内存占用的自动化技术。为了提高Python应用程序的正确性,该项目将开发新的自动化测试技术,这些技术(1)使用覆盖率引导的模糊来增强基于属性的随机测试;(2)使用共生执行来更智能地生成和最小化输入;(3)合成特定于属性的生成器函数;(4)利用统计集群技术来减少重复的失败诱导输入;以及(5)利用并行性和自适应调度算法来提高测试吞吐量。该项目将开发一套“错误基准”--实际上,是一种新的基准生成方法--来评估这些技术。性能和正确性这两条主线是协同和互补的:自动测试驱动性能分析,而性能优化(如并行性)加速自动测试。该奖项由计算机与计算基础部门的软件与硬件基础计划和NSF高级网络基础设施办公室共同资助。该奖项反映了NSF的法定使命,并通过使用基金会的智力优势和更广泛的影响审查标准进行评估,被认为值得支持。
英文摘要
The Python programming language is among today's most popular computer programming languages and is used to write software in a wide variety of domains, from web services to data analysis to machine learning. Unfortunately, Python’s lightweight and flexible nature -- a major source of its appeal -- can cause significant performance and correctness problems - Python programs can suffer slowdowns as high as 60,000x over optimized code written in traditional programming languages like C and C++, and can require an order-of-magnitude more memory. Python's flexible, “dynamic” features also make its programs error-prone, with many coding errors only being discovered late in development or after deployment. Python’s frequent use as a "glue language" -- to integrate and interact with different components written in C or C++ -- exposes many Python programs to the unique dangers of those languages, including susceptibility to memory corruption-based security vulnerabilities. This project aims to remedy these problems by developing new technology for Python in the form of novel performance analysis tools, memory-reduction and speed-improving optimizations (including support for multi-core execution), automated software testing frameworks, and common benchmarks to drive their evaluation.This project will develop (1) performance analysis tools that help Python programmers accurately identify the sources of slowdowns; (2) techniques for automatically identifying code that can be replaced by calls to C/C++ libraries; (3) an approach to unlocking parallelism in Python threads, which currently must execute sequentially due to a global interpreter lock; and (4) automatic techniques to drastically reduce the memory footprints of Python applications. To improve the correctness of Python applications, the project will develop novel automated testing techniques that (1) augment property-based random testing with coverage-guided fuzzing; (2) employ concolic execution for smarter test generation and input minimization; (3) synthesize property-specific generator functions; (4) leverage statistical clustering techniques to reduce duplicated failure-inducing inputs; and (5) leverage parallelism and adaptive scheduling algorithms to increase testing throughput. The project will develop a set of "bug benchmarks" -- indeed, a novel benchmark-producing methodology -- to evaluate these techniques. The twin threads of performance and correctness are synergistic and complementary: automatic testing drives performance analysis, while performance optimizations (like parallelism) speed automatic testing.This award is co-funded by the Software & Hardware Foundations Program in the Division of Computer & Computing Foundations, and the NSF Office of Advanced Cyberinfrastructure.This award reflects NSF's statutory mission and has been deemed worthy of support through evaluation using the Foundation's intellectual merit and broader impacts review criteria.
期刊论文(1)
专著(0)
科研奖励(0)
会议论文
DOI:
10.1145/3607860
发表时间:
2023-08-01
期刊:
PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL
影响因子:
1.8
作者:
[Shi,Jessica, Keles,Alperen, Lampropoulos,Leonidas]
通讯作者:
Lampropoulos,Leonidas
Travel: NSF Student Travel Grant for the Programming Languages Mentoring Workshop at ACM SIGPLAN Symposium on Principles of Programming Languages, 2024-2026
-
批准号:2334703
-
项目类别:Standard Grant
-
资助金额:$4.5万
-
财政年份:2023
-
负责人:Leonidas Lampropoulos
-
依托单位:
CAREER: Fuzzing Formal Specifications
-
批准号:2145649
-
项目类别:Continuing Grant
-
资助金额:$58.24万
-
财政年份:2022
-
负责人:Leonidas Lampropoulos
-
依托单位:
Collaborative Research: SHF: Medium: Efficient and Trustworthy Proof Engineering
-
批准号:2107206
-
项目类别:Continuing Grant
-
资助金额:$54.0万
-
财政年份:2021
-
负责人:Leonidas Lampropoulos
-
依托单位:
国内基金
海外基金
登录
查看更多内容
Research on Quantum Field Theory without a Lagrangian Description
-
批准号:24ZR1403900
-
项目类别:省市级项目
-
资助金额:--
-
批准年份:2024
-
负责人:SATOSHI NAWATA
-
依托单位:
Cell Research
-
批准号:31224802
-
项目类别:专项基金项目
-
资助金额:24.0万元
-
批准年份:2012
-
负责人:程磊
-
依托单位:
Cell Research
-
批准号:31024804
-
项目类别:专项基金项目
-
资助金额:24.0万元
-
批准年份:2010
-
负责人:程磊
-
依托单位:
Cell Research (细胞研究)
-
批准号:30824808
-
项目类别:专项基金项目
-
资助金额:24.0万元
-
批准年份:2008
-
负责人:张爱兰
-
依托单位:
Research on the Rapid Growth Mechanism of KDP Crystal
-
批准号:10774081
-
项目类别:面上项目
-
资助金额:45.0万元
-
批准年份:2007
-
负责人:滕冰
-
依托单位: