State of the Wolfram Cloud

John Pacey
Director of Cloud Development – Wolfram Research

(RowDefault[, (Spacer1), , (Spacer1), ])  #WolframTechConf

ABSTRACT

This talk will briefly demonstrate new features and improvements in cloud notebooks. It will also include an overview of our current roadmap and updates on enterprise support for integrating LLM functionality and our ongoing “containerization” of the cloud architecture.

Overview

Brief review of Wolfram Cloud capabilities

Explanation of key features of the Wolfram Cloud environment

Recent highlights

Roadmap and Priorities

Questions

The Wolfram Cloud

www.wolframcloud.com

Work with notebooks and write WL code in a web browser

Share interactive notebooks and other content

Deploy applications written in Wolfram Language

Powerful hybrid desktop + cloud workflow

Working with notebooks

https://www.wolframcloud.com/

Expand[(1+x)^100]

manipulate=Manipulate[Plot[Cos[a x+b],{x,0,6}],{{a,2,"Multiplier"},1,4},{{b,0,"Phase Parameter"},0,10}]

CloudPublish[manipulate,"mymanipulate"]

Support for different notebook types in the cloud

Improved support for rendering of Wolfram|Alpha notebooks

https://www.wolframcloud.com/env/jpacey/WANEIntroExamples.nb

Experimental chat notebook types are available in cloud as well

Cloud support status

WolframLanguageData["Plot","CloudSupportStatus"]

WolframLanguageData["RunProcess","CloudSupportStatus"]

WolframLanguageData["RunProcess","CloudSupportNotes"]

Embedding notebooks and external notebooks

Seamlessly embed notebooks on websites

wolfr.am/notebookembedder

WolframNotebookEmbedder.embed(
  "https://www.wolframcloud.com/obj/jpoeschko/Public/Example.nb",
   container);

New: Notebooks given by URL or expression

https://www.wolframcloud.com/view?url=https://dataverse.scholarsportal.info/api/access/datafile/152530

https://www.wolframcloud.com/view?expr=Notebook%5B%7BCell%5B%22hello%20world%22%2C%20%22Text%22%5D%7D%5D

Working with deployed content

CloudConnect from desktop

CloudConnect["jpacey@wolfram.com"]

$ProcessID

CloudEvaluate[$ProcessID]

Examples

CloudDeploy[APIFunction[{"x"->"Integer"},FactorInteger[#x]&]]

CloudDeploy[
FormFunction[
"Input" -> <|"Input" -> "Hello World!", "Label" ->None|>, 
SpeechSynthesize[#Input]&, 
AppearanceRules-><|
"Title"->"Text to Speech",
"Description" -> "Write to me, I'll speak to you!"
|>
], "WolframSpeak"
]

CloudDeploy[APIFunction[
"choices" -> DelimitedSequence["String"],
HTTPRedirect @ First @ CloudDeploy[FormFunction["choices" -> #choices, Identity]] &
],"ChoicesFormAPI"]

CloudDeploy[
APIFunction[
{"name" -> "String"},
HTTPResponse[XMLTemplate["<h1>Hello <wolfram:slot/></h1>"][#name]] &
]
,"Greetings"]

Key Concepts of the Wolfram Public Cloud Environment

General

Linux virtual machines

currently NO GPU

Per-user limits on overall storage and evaluation memory and time constraints

Limit or disallow certain functions for security reasons

Combination of different sandboxing techniques to isolate execution of user code

NOTE: All of the above restrictions can be reconfigured or changed in a custom or enterprise solution

Kernel Types

“Session”

Long-lived kernel assigned to a single user when editing a notebook

“Public”

Short lived kernel assigned to a single user and typically a single evaluation

Executing an APIFunction or FormFunction

Viewing and possibly interacting with deployed notebooks or with a deployed Manipulate

FrontEnd-Kernel communication overhead

The browser is communicating with the kernel over the network. It is important to understand and reduce FrontEnd to Kernel communication

Different from a typical desktop notebook session where the FrontEnd and kernel processes essentially having zero latency.

Looking at “LinkSnooper” kernel configuration output in a desktop kernel session can help identify

Wolfram Cloud Applications

ChatGPT plugin

https://www.wolfram.com/wolfram-plugin-chatgpt/

ChatGPT is capable of writing and executing Wolfram Language with the Wolfram Plugin thanks to the Wolfram Cloud, enabling:

Execution of WL code through http requests

Safely execute arbitrary user code

Rapid building, prototyping, and deployment of new versions

The underlying APIs analyze the generate code for common LLM mistakes, and in the case of errors, responds with helpful suggestions so that ChatGPT can improve its query.

Similar APIs and integrations with other LLMs

Wolfram Cloud Applications

Wolfram Language Playground

https://www.wolfram.com/language/#playground

The Wolfram Cloud provides a “sandbox” to evaluate and experiment without requiring sign-in.

Wolfram Cloud Applications

Expanding Resources system

https://resources.wolframcloud.com/

Wolfram Community

https://community.wolfram.com

Utilizes the Wolfram Public Cloud and the Wolfram Notebook Embedder

Lots of other internal Wolfram applications

internal customized ERP solutions

log analysis and task systems

various internal development instances and cross-team sharing of materials and content

Roadmap Updates and Priorities

Improved release cycle

Increased Public Cloud release cadence from 2months+ to ~1 month

Commitment to more frequent and timely EPC releases

Cloud Notebooks

Prioritizing Manipulate performance improvements in deployed (/obj) view

Native Graphics - continuing ongoing project

Editor overhaul for improved performance and capabilities

Cloud Objects and Kernels

Continued focus on performance improvements and stability

Optimizing bulk CloudObject operations

Roadmap Updates and Priorities

Enterprise support

Last EPC release was in August

Next EPC release 1.65.1 should be release in the next week or so

Following EPC release 1.66.1 is already in middle stages of testing

Improved build pipeline and release process

Goal to have EPC releases be available a few weeks after public cloud releases

Auto-scalable EPC and related options for different cloud providers

Options that are particularly tuned for specific use cases, such as auto-scalable APIs or LLM integration.

Containerized cloud architecture

Prioritized, ongoing project

Custom solutions

Small, medium, and large projects and custom solutions, contact us

More information

Notebook features: https://wolfr.am/CloudNotebooksImplementationNotes

Release notes: https://wolframcloud.com/obj/release-notes/

Summary

Continuing to build many Wolfram Cloud based or adjacent applications

Important to understand differences of the cloud environment including different kernel types

More consistent release cycle, particularly for EPC releases

Continued performance and stability improvements

Manipulate performance (WIP)

Editor overhaul (WIP)

Containerized architecture (WIP)

Thank you! Questions?

John Pacey
jpacey@wolfram.com

Office Hours

Office Hour: Wolfram Cloud - Nov 2, 2023 10:30 am - 11:30am